Clone Files to Cloud Storage: Difference between revisions
From WickyWiki
mNo edit summary |
|||
| Line 161: | Line 161: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
rclone tree --sort-modtime --human | rclone tree --sort-modtime --human gdrive:/ | tail -5 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 19:20, 15 October 2018
Links
- http://wiki.linuxquestions.org/wiki/Rsync_with_Google_Drive
- https://rclone.org/drive/
- https://developers.google.com/identity/protocols/OAuth2ServiceAccount
Install
wget https://rclone.org/install.sh chmod +x install.sh sudo ./install.sh
Configure
Google Drive Client Access
Configure the account :
- Go to the Developer Console: https://console.developers.google.com/apis/dashboard
- Login if needed, makes sure you have the corrrect account
- Create a project and select it
- Select "ENABLE APIS AND SERVICES" and enable the "Google Drive API"
Configure rclone
Note:
- This will partly be repeated after the access token has expired.
rclone config n # New remote name> gdrive1 # Any short name Storage Type> drive # Google Drive client_id> client_secret> scope> drive # Full access all files, excluding Application Data Folder root_folder_id> service_account_file> Auto config> y #your browser will open, login with your gmail account and allow access Team drives> n is this OK?> y
Sync from local to Google Drive, name 'gdrive1', folder 'rclone':
rclone sync -v ~/test4.txt "gdrive1:/rclone/"
Sync from Google Drive to local:
rclone sync -v "gdrive1:/rclone/test4.txt" ~/rclone/
Google Drive Service Account
Note:
- The service account and the main account do not share access to Google Drive files.
- You can not use the Webinterface to access the service account Google Drive files. However, a service account is still the preferred method if you want to machine-to-machine interaction.
- To be able to use 'drive-impersonate' you need a "G Suite domain", for this you will need to use a domain that you 'own'. There are various ways to prove you 'own' a domain.
Create a service account :
- Go to the Developer Console: https://console.developers.google.com/apis/dashboard
- Login if needed, makes sure you have the corrrect account
- Create a project and select it
- Select "ENABLE APIS AND SERVICES" and enable the "Google Drive API"
- Use the " Create Credentials" button to create a "Service account key". Pick a "Service account name". "Role" can be empty.
- Select "Key type JSON" and save the file (rclone.json) for use with rclone config
Configure rclone
rclone config n # New remote name> gdrive # Any short name Storage Type> drive # Google Drive client_id> client_secret> scope> drive # Full access all files, excluding Application Data Folder root_folder_id> service_account_file> /home/pi/Scripts/rclone.json Edit advanced config?> n Configure this as a team drive?> n is this OK?> y
List contents:
rclone lsf -v "gdrive:"
Sync:
rclone sync -v /home/pi/Documents "gdrive:/rclone/"
List of rclone commands:
Encryption
Define an encrypted target, in this example the configured remote 'gdrive' is used as storage in subfolder 'crypt'.
rclone config e/n/d/r/c/s/q> n name> gdrive2 Storage> crypt remote> gdrive:/crypt filename_encryption> 2 directory_name_encryption> 1 type password y/g/n> y seed y/g/n> n advanced config y/n> n
Sync from local to Google Drive, name 'gdrive2':
rclone sync -v /home/pi/Documents "gdrive2:/"
List contents (encrypted):
rclone lsf -v "gdrive:/crypt"
List contents (decrypted):
rclone lsf -v "gdrive2:"
Other commands
Used space:
rclone about gdrive:
Clean trash / bin:
rclone cleanup gdrive:
Five most recently modified files with size and total number of files:
rclone tree --sort-modtime --human gdrive:/ | tail -5