rclone和crontab定时备份服务器文件到云盘
安装rclone
- UbuntuDebian下载安装rclone
wget https://www.moerats.com/usr/shell/rclone_debian.sh && bash rclone_debian.sh
如果是别的系统请用这个curl https://rclone.org/install.sh | sudo bash
- 按照提示输入命令 rclone config开始配置
注意要仔细看哪个是GoogleDrive,因为随时都会变!!!
然后这两个client都不用配置,直接回车就好了
在这里授予rclone可读可写谷歌云盘的权限
出现授权链接后,将其赋值到浏览器并谷歌登录允许,将得到的key值填入config_verification_code,则全部配置就以基本结束,如想要挂载的可自行搜索相关挂载命令。
自动备份的话就是涉及到crontab定时任务
crontab的一般命令:
- crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
SHELL=/bin/sh 可以指定crontab执行时的shell环境,否则默认是bash - crontab –l : 显示 crontab 文件。
- crontab -r : 删除 crontab 文件。
- crontab -ir : 删除 crontab 文件前提醒用户。
详细的说明:
1 2 3 4 5 command
- 第1列表示分钟1~59 每分钟用或者 /1表示
- 第2列表示小时1~23(0表示0点)
- 第3列表示日期1~31
- 第4列表示月份1~12
- 第5列标识号星期0~6(0表示星期天)
- 第6列要运行的命令
*号表示全部,即任意分钟,任意小时,每天每月
要crontab运行的命令最好带上路径,不然可能执行失败
一些crontab示例:
每晚的21:30重启apache30 21 * * * /usr/local/etc/rc.d/lighttpd restart
周一到周五每天下午 5:00 寄一封信给 Tim@apple.com0 17 * * 1-5 mail -s "hi" Tim@apple.com < /tmp/maildata
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :0 6-12/3 * 12 * /usr/bin/backup
综上所述可以写出自己的一套备份脚本
#!/bin/sh
tar -czvf /backup_name/back$(date +%Y%m%d%H%M).tar.gz folder_name
#解释一下 这是以时间命名压缩你要备份的文件夹或者文件,其中backup_name是备份好的压缩包存放路径,folder_name是你要备份的文件夹名字或者文件名字,如/home/ 等
# single copy
/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/backup_name/" "rclone-config-name:xxx"
# 这里就是利用rclone的copy命令,单方面往云盘存放文件,其中rclone-config-name是你配置rclone时的名字,xxx是你要上传到云盘的哪个文件夹
#double copy
/usr/bin/rclone sync -i /backup_name rclone-config-name:xxx --progress
#这条命令其实是保持vps和云盘上某个文件夹的一致性
#delete some old
/usr/bin/find /backup_name -mtime +30 -name "*.zip" -exec rm -rf {} \;
#这个命令可以删除备份文件夹下30天前的东西,免得备份过多而冗余
#echo log 顾名思义日志信息
echo "BACKUP DATE:" $(date +"%Y-%m-%d %H:%M:%S") >> /var/log/backup.log
关于更多rclone配置问题,如开机启动,挂载什么的可以参考该博主的rat's blog
版权声明:本文为原创文章,版权归 Bill's Blog 所有,转载请注明出处!如相关链接出现404,可以在文章下面评论留言。