|Tags||cli, centos, SME, install|
Requires command level knowledge to install and run.
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:
- Alibaba Cloud (Aliyun) Object Storage System (OSS)
- Amazon Drive (See note)
- Amazon S3
- Backblaze B2
- DigitalOcean Spaces
- Google Cloud Storage
- Google Drive
- IBM COS S3
- Memset Memstore
- Microsoft Azure Blob Storage
- Microsoft OneDrive
- Openstack Swift
- Oracle Cloud Storage
- Rackspace Cloud Files
- Yandex Disk
- The local filesystem
I have only tested it against Dropbox.
Rclone is made available as a statically linked executible and can be installed as follows: (https://rclone.org/install/)
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
Note that this loads the 64 bit version, other versions are available.
Then you can run the configuration process:
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.
Here is the shell script that I developed and tested to see if it would work:
!/bin/sh signal-event pre-backup cd / rclone mkdir smeserver-dropbox:backup rclone mkdir smeserver-dropbox:backup/smeserver rclone mkdir smeserver-dropbox:backup/smeserver/etc/e-smith/templates-user-custom 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/**"
holk has documented a use of rclone that will give an incremental backup for up to 7 days (or whatever you might want)
Rclone allows the remote data to be encrypted by specifying an intermediate remote which does the encrypting.
I have not tried this, but it looks pretty easy to add in and does not involve the SMEServer software.
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;
Just delete /usr/bin/rclone and the config file /root/.config/rclone/rclone.conf
Below is an overview of the current issues for this contrib:
Only released version in smecontrib are listed here.