Line 19: |
Line 19: |
| ===Maintainer=== | | ===Maintainer=== |
| <!-- here you need to file your username and name --> | | <!-- here you need to file your username and name --> |
− | [[User:brianr|Brian Read]] | + | [[User:brianr|Brian Read]] |
| | | |
| === Version === | | === Version === |
| <!-- keep this first element as is, you can add some if needed --> | | <!-- keep this first element as is, you can add some if needed --> |
− | {{#smeversion: {{#var:smecontribname}} }}Not yet built into an rpm. Requires command level knowledge to install, | + | <!-- {{#smeversion: {{#var:smecontribname}} }}Not built into an rpm. --> |
| + | |
| + | Requires command level knowledge to install and run. |
| | | |
| === Description === | | === Description === |
| | | |
− | [https://rclone.org/ Rclone] is a program written in go to allow local files to be saved to one of many cloud servers. It tries to emulate rsync. | + | [https://rclone.org/ Rclone] is a program written in Go to allow local files to be saved to one of many cloud servers. It tries to emulate rsync. |
| | | |
| Current cloud providers supported are: | | Current cloud providers supported are: |
| | | |
− | Amazon Drive
| + | |
− | Amazon S3
| + | * Alibaba Cloud (Aliyun) Object Storage System (OSS) |
− | Backblaze B2
| + | * Amazon Drive (See note) |
− | Box
| + | * Amazon S3 |
− | Ceph
| + | * Backblaze B2 |
− | DigitalOcean Spaces
| + | * Box |
− | Dreamhost
| + | * Ceph |
− | Dropbox
| + | * DigitalOcean Spaces |
− | FTP
| + | * Dreamhost |
− | Google Cloud Storage
| + | * Dropbox |
− | Google Drive
| + | * FTP |
− | HTTP
| + | * Google Cloud Storage |
− | Hubic
| + | * Google Drive |
− | Memset Memstore
| + | * HTTP |
− | Microsoft Azure Blob Storage
| + | * Hubic |
− | Microsoft OneDrive
| + | * Jottacloud |
− | Minio
| + | * IBM COS S3 |
− | Nextloud
| + | * Koofr |
− | OVH
| + | * Memset Memstore |
− | Openstack Swift
| + | * Mega |
− | Oracle Cloud Storage
| + | * Microsoft Azure Blob Storage |
− | Ownloud
| + | * Microsoft OneDrive |
− | pCloud
| + | * Minio |
− | put.io
| + | * Nextcloud |
− | QingStor
| + | * OVH |
− | Rackspace Cloud Files
| + | * OpenDrive |
− | SFTP
| + | * Openstack Swift |
− | Wasabi
| + | * Oracle Cloud Storage |
− | WebDAV
| + | * ownCloud |
− | Yandex Disk
| + | * pCloud |
− | The local filesystem
| + | * put.io |
− | | + | * QingStor |
| + | * Rackspace Cloud Files |
| + | * Scaleway |
| + | * SFTP |
| + | * Wasabi |
| + | * WebDAV |
| + | * Yandex Disk |
| + | * The local filesystem |
| I have only tested it against Dropbox. | | I have only tested it against Dropbox. |
| | | |
| === Installation === | | === Installation === |
| | | |
− | Rclone can be installed as follows: (https://rclone.org/install/) | + | Rclone is made available as a statically linked executible and can be installed as follows: (https://rclone.org/install/) |
| + | |
| + | <pre> |
| + | curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip |
| + | unzip rclone-current-linux-amd64.zip |
| + | cd rclone-*-linux-amd64 |
| + | sudo cp rclone /usr/bin/ |
| + | sudo chown root:root /usr/bin/rclone |
| + | sudo chmod 755 /usr/bin/rclone |
| + | </pre> |
| + | |
| + | Note that this loads the 64 bit version, other versions are available. |
| + | |
| + | Then you can run the configuration process: |
| + | |
| + | <pre>rclone config</pre> |
| + | |
| + | Choose your cloud provider and follow the instructions for a headless server. |
| + | |
| + | For Dropbox I had to run rclone on a desktop with a browser, giving permission for rclone to be allowed to connect to Dropbox and then copy and paste a key string across to the smeserver. |
| + | |
| + | === Useage === |
| + | |
| + | Here is the shell script that I developed and tested to see if it would work: |
| | | |
− | <code> | + | <pre> |
− | curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip<br />
| + | !/bin/sh |
− | unzip rclone-current-linux-amd64.zip<br />
| + | signal-event pre-backup |
− | cd rclone-*-linux-amd64<br />
| + | cd / |
− | sudo cp rclone /usr/bin/<br />
| + | rclone mkdir smeserver-dropbox:backup |
− | sudo chown root:root /usr/bin/rclone<br />
| + | rclone mkdir smeserver-dropbox:backup/smeserver |
− | sudo chmod 755 /usr/bin/rclone<br />
| + | rclone mkdir smeserver-dropbox:backup/smeserver/etc/e-smith/templates-user-custom |
− | </code> | + | rclone mkdir smeserver-dropbox:backup/smeserver/etc/e-smith/templates-custom |
| + | rclone mkdir smeserver-dropbox:backup/smeserver/home |
| + | rclone mkdir smeserver-dropbox:backup/smeserver/ssh |
| + | rclone mkdir smeserver-dropbox:backup/smeserver/root |
| + | rclone copy -v / smeserver-dropbox:backup/smeserver --files-from backup-files-list-rclone |
| + | rclone copy -v "etc/e-smith/templates-custom/" "smeserver-dropbox:backup/smeserver/etc/e-smith/templates-custom/" |
| + | rclone copy -v "etc/e-smith/templates-user-custom/" "smeserver-dropbox:backup/smeserver/etc/e-smith/templates-user-custom/" |
| + | rclone copy -v etc/ssh smeserver-dropbox:backup/smeserver/ssh |
| + | rclone copy -v root smeserver-dropbox:backup/smeserver/root |
| + | rclone copy -v home/e-smith/ smeserver-dropbox:backup/smeserver/home/ --exclude "tmp/**" |
| + | </pre> |
| | | |
− | Then you can the configuration process:
| + | === Incremental Backup === |
| | | |
− | <code>rclone config</code><br />
| + | holk has documented a use of rclone that will give an incremental backup for up to 7 days (or whatever you might want) |
− | and follow the instructions for a headless server <br />
| |
| | | |
− | For Dropbox I had to run rclone on a desktop with a browser, giving permission for rcloe to be allowed to connect to Dropbox and then copy and pasting a key string across to the smeserver.
| + | See here: |
| + | |
| + | https://forums.contribs.org/index.php/topic,53562.msg278216.html#msg278216 |
| + | |
| + | === Encrypted === |
| + | |
| + | Rclone allows the remote data to be encrypted by specifying an intermediate remote which does the encrypting. |
| + | |
| + | [https://rclone.org/crypt/ See here.] |
| + | |
| + | I have not tried this, but it looks pretty easy to add in and does not involve the SMEServer software. |
| + | |
| + | === Restore === |
| + | |
| + | I assume that you can restore by just copying the data back from the cloud provider and then doing a signal-event post-upgrade; signal-event reboot; |
| | | |
| === Uninstall === | | === Uninstall === |
| + | |
| + | Just delete /usr/bin/rclone and the config file /root/.config/rclone/rclone.conf |
| | | |
| === Bugs === | | === Bugs === |
Line 100: |
Line 157: |
| | | |
| <!-- list of category you want to see this page in --> | | <!-- list of category you want to see this page in --> |
− | [[Category: Contrib]] | + | [[Category: Howto]] |
| + | [[Category: rclone]] |
| + | [[Category: backup]] |
| <!-- Please keep there the template revision number as is --> | | <!-- Please keep there the template revision number as is --> |