最近用到正好写出来分享:
apt install -y shc gcc curl && curl -Lso- https://rclone.org/install.sh | sudo bash
read -p '■ s3-access-key-id: ' s3ak && read -p '■ s3-secret-access-key: ' s3sk && echo -e '#!/bin/sh' > /www/_sync.sh && echo -e "rclone sync -P /www :s3:backup --backup-dir :s3:conflict/\`date +%Y%m%d\` --checksum --s3-provider=Storj --s3-access-key-id=$s3ak --s3-secret-access-key=$s3sk --s3-endpoint=gateway.storjshare.io" >> /www/_sync.sh && shc -v -f /www/_sync.sh && rm -f /www/_sync.sh /www/_sync.sh.x.c && newcron="12 3 * * * /www/_sync.sh.x" && cat <(fgrep -i -v "$newcron" <(crontab -l)) <(echo "$newcron") | crontab - && crontab -l
使用:
1. 在StorJ建立两个名为“backup”和“conflict”的Buckets(全部小写)。
2. 建立一个赋于所有权限的Access并生成S3接口的access-key-id和secret-access-key。
3. 运行以上两行Shell并进行配置,即可每日一次自动将/www内的全部文件备份至StroJ。
原理:
建立两个Bucket,一个是和当前VPS同步的,另一个是用于保存冲突的文件。
例如某人黑掉了这台VPS,将所有文件都删掉,那同步时也会把之前的文件删掉。
于是我们启用类似于回收站的机制,检测到文件与之前不同时,存储至conflict磁盘。
为了防止rclone被盗和滥用,我们将密钥信息写入Shell并对脚本进行加密,防止反编译。
效果:
又省掉一台备份VPS的费用,目前手头主力机仅剩狗云香港CMI,非常开心!