有一个东西可能会多个人同时去改,没法从源头上解决,还是需要使用脚本的方式去定时备份。正好手头有树莓派,可以将这个任务交给树莓派,每天定时去备份,也不用人去介入,全自动~
脚本代码
我们的这个脚本的作用是去访问一个站点,然后获取数据存放在文件中,然后通过git提交将每次改动放入git进行备份。当然这个操作是无所谓的,可以是写入文件然后将文件打包发送email。之前有整理一篇如何发送email的文章:Node 压缩文件夹并发送邮件。
然后写好代码后我们是可以用node来执行这个脚本的,比如像这样:
1 | node myHandle.js |
然后我们这里用手动的方式的话,分为两步:
- 执行node,获取信息存放在文件中。
- 使用git提交对应修改
git add
git commit
git push
可以看到我们如果用手动的话至少要执行四个命令。
那我们将这些命令放入到一个shell文件:backup.sh
:
1 | cd /you/project/filePath #首先进入到当前项目的文件夹,否则找不到路径会错乱的。 |
因为这个shell是要执行的,赋予它权限:
1 | chmod 777 ./backup.sh |
然后我们尝试手动执行./bckup.sh
看看输出,确认每一步脚本都在执行,没问题后就可以开始去设置定时任务了。
树莓派添加定时任务
通过shell连接树莓派,然后编辑crontab任务:
1 | crontab -e |
这个命令会让我们选择编辑crontab的编辑器。在列出的编辑器里面我们选择vim:
然后会进入vim编辑模式,开始编辑定时任务。
我们希望这个定时任务能每一天的整点执行一次:
1 | # m h dom mon dow command |
注意这里的shell文件需要写绝对路径,否则会出错。
修改后保存,我们可以看到有一条输出语句:”crontab: installing new crontab“。
为保证我们创建成功了,可以查看下计划任务列表:
1 | crontab -l |
可以看到我们增加的这一条计划任务就说明没问题。
然后需要重启crontab,否则编辑的定时任务不执行:
1 | /etc/init.d/cron restart |
运行这个命令的时候需要授权,可以直接用sudo账号。
树莓派利用起来,以后有其他定时性执行的任务都可以扩展。