本文系精华博文 偶然发现的这个教程 虽然很实用 但是已经泛滥了 可以自行搜索 一键备份至谷歌云盘 教程比较多
但是我测试后 发现真正能用的不多 很多要么不能用 要么是执行不了
这里以最简单的方式 来解决 亲测可用
环境是在BT宝塔面板 CentOS7系统
第一步 SSH安装Gdrive 这一步基本上都对
wget -O /usr/bin/gdrive "https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download" chmod +x /usr/bin/gdrive
google账户授权
gdrive about
会返回一串网址并询问授权码,将网址粘贴到本地电脑浏览器并登陆账号授权,完成后会返回授权码,然后将授权码粘贴到SSH下,成功返回授权账户信息即成功
1.2: 来说一下 gdrive的命令
gdrive upload /www/backup/aaa.zip 成功执行ok>>>上传文件命令
gdrive upload /www/backup/*.zip 成功执行ok>>上传任意后缀文件命令
gdrive upload /www/backup/aaa.gif 16uHpace****dp 执行不了 具体原因不知道 后面这一串 是谷歌盘目录的ID具体自己搜
gdrive sync upload ${Args} ${LocalDIRPath} ${RemotePath}; 执行不了 具体原因不知道
gdrive sync upload /www/backup/ 16uHpace****dp 完美执行>>>同步命令 先检查是否有不同 然后同步
最后这行命令是我们要用到的
第二步 新建一个脚本文件 并加入到计划任务
在/www/backup目录创建一个脚本文件gdrive.sh,将文件权限改为755
并且修改gdrive.sh 内容为gdrive sync upload /www/backup/ 16uHpace****dp
意思呢就是 检查/www/backup/ 这目录里 跟谷歌云ID为16uHpace****dp 的文件夹 内容是否一致 如果谷歌云文件跟VPS目录文件不一致 会 上传缺少的文件 这样一来 就实现了 同步的目的 实际上 是上传并非同步 因为 如果远程有文件 本地缺文件 他也不会删除远程多的文件 所以说 这个是单方面同步 懂得就好
以上操作后,创建crontab定时任务
crontab -e
在后面添加(每日2点同步备份)
0 2 * * * /www/backup/gdrive.sh
查看是否添加成功
crontab -l
重启crontab服务
service crond restart
ok! 这里涉及到一个vi命令问题 自行搜索解决
crontab -e命令时候 发现一个crontab文件 到文件管理里面去找 发现跟vi看到的不一致 这个问题有待研究
当然vi直接编辑是一样的
至此 我们解决了备份数据到谷歌云的目的
其中的0 2 * * * /www/backup/gdrive.sh
看下面的 就明白了
# For deTails see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 30 1 * * * root bash /root/backup.sh
123参考资料 cjv5.com/archives/73.html
pulnd.com/2019/01/06/VPS-Gdrive/
他们说的很多 我都试过 不行 包括BT面板的计划任务 会出错 自己研究吧
反正我现在做的这个没任何问题 顺利执行
注意到地方:
.gdrive/token_v2.json 这个文件 就是授权文件 如果不想用了 记得删除