---
# System prepended metadata

title: 'README Documentation: Google Drive Automation Scripts'
tags: [Articles]

---

# README: Google Drive Backup Automation

This repository contains scripts designed to automate the backup process of certain files, upload them to Google Drive, and handle post-upload cleanup. Here are the prerequisites, setup process, usage, customization options, and details about setting up a cron job for these scripts.

## Prerequisites

- A Unix-based operating system (e.g., Linux or macOS).
- Terminal or command-line interface access.
- A Google Drive account.
- Google Client ID and Client Secret for `gdrive` setup.

## Setup

### 1. Clone the Repository and Set Permissions

```bash
git clone [repository_url]
cd [repository_directory]
```

Provide execution permissions to the scripts:

```bash
chmod +x go.sh remote.sh remove_file.sh
```

### 2. Installing and Configuring `gdrive`

Fetch the `gdrive` binary, unpack, and move it to an accessible location:

```bash
curl -LJO https://github.com/glotlabs/gdrive/releases/download/3.9.0/gdrive_linux-x64.tar.gz
tar -xvf gdrive_linux-x64.tar.gz
sudo mv gdrive /usr/local/bin/
```

#### On a Local Machine:

1. Add a Google Account to `gdrive`:

   ```bash
   gdrive account add
   ```

2. Enter the Google Client ID and Client Secret when prompted. Navigate to the provided authorization URL to grant `gdrive` access to your Google Drive.

3. You'll be redirected to `http://localhost:8085` to complete the setup. 

#### On a Remote Server:

For remote servers, authorize on a local machine first, then transfer the credentials to the remote server:

1. On your local machine:

   ```bash
   gdrive account add
   gdrive account export <ACCOUNT_NAME>
   ```

   Transfer the exported archive to the remote server.

2. On the remote server:

   ```bash
   gdrive account import <ARCHIVE_PATH>
   ```

### 3. Further Configuration and Cleanup (if required)

After setting up `gdrive`, you can remove any unnecessary files or configurations:

```bash
rm gdrive_linux-x64.tar.gz
rm [path_to_your_gdrive_export_file]
```

## Usage

Run the backup process manually:

```bash
./go.sh
```

This sequence will:

- Archive specific files into a ZIP using `remote.sh`.
- Upload the ZIP to a predefined Google Drive folder.
- Delete the ZIP from the local system using `remove_file.sh`.

## Customization

- Replace `[FOLDER_ID]` in `go.sh` with your Google Drive folder's actual ID.
- If you want to alter which files or directories are included in the ZIP, modify the `remote.sh` script.

## Setting Up a Cron Job

To automate the backup process, set up a cron job that triggers the script at desired intervals.

1. Open the crontab editor:

   ```bash
   crontab -e
   ```

2. Add the following line to schedule the script to run every day at 12 AM:

   ```bash
   0 0 * * * /home/user/[repository_name]/go.sh
   ```

3. Save and exit the editor.

4. To verify your cron jobs:

   ```bash
   crontab -l
   ```

This will list all cron jobs set up for the user. Ensure your new job is listed.

---

Thank you for using the Google Drive Backup Automation suite. For challenges or recommendations, please open an issue or submit a pull request.