0%

使用树莓派来做定时备份

有一个东西可能会多个人同时去改,没法从源头上解决,还是需要使用脚本的方式去定时备份。正好手头有树莓派,可以将这个任务交给树莓派,每天定时去备份,也不用人去介入,全自动~

脚本代码

我们的这个脚本的作用是去访问一个站点,然后获取数据存放在文件中,然后通过git提交将每次改动放入git进行备份。当然这个操作是无所谓的,可以是写入文件然后将文件打包发送email。之前有整理一篇如何发送email的文章:Node 压缩文件夹并发送邮件

然后写好代码后我们是可以用node来执行这个脚本的,比如像这样:

1
$ node myHandle.js

然后我们这里用手动的方式的话,分为两步:

  1. 执行node,获取信息存放在文件中。
  2. 使用git提交对应修改
  • git add
  • git commit
  • git push

可以看到我们如果用手动的话至少要执行四个命令。

那我们将这些命令放入到一个shell文件:backup.sh

1
2
3
4
5
cd /you/project/filePath #首先进入到当前项目的文件夹,否则找不到路径会错乱的。
node myHandle.js #执行node脚本获得文件
git add .
git commit -m 'pi backup' # 提交信息
git push #推送到远程

因为这个shell是要执行的,赋予它权限:

1
$ chmod 777 ./backup.sh

然后我们尝试手动执行./bckup.sh看看输出,确认每一步脚本都在执行,没问题后就可以开始去设置定时任务了。

树莓派添加定时任务

通过shell连接树莓派,然后编辑crontab任务:

1
$ crontab -e

这个命令会让我们选择编辑crontab的编辑器。在列出的编辑器里面我们选择vim:

raspberry crontab

然后会进入vim编辑模式,开始编辑定时任务。

我们希望这个定时任务能每一天的整点执行一次:

1
2
# m h dom mon dow command
0 * * * * /you/comand.sh

注意这里的shell文件需要写绝对路径,否则会出错。

修改后保存,我们可以看到有一条输出语句:”crontab: installing new crontab“。

为保证我们创建成功了,可以查看下计划任务列表:

1
$crontab -l

可以看到我们增加的这一条计划任务就说明没问题。

然后需要重启crontab,否则编辑的定时任务不执行:

1
$ /etc/init.d/cron restart

运行这个命令的时候需要授权,可以直接用sudo账号。


树莓派利用起来,以后有其他定时性执行的任务都可以扩展。

码字辛苦,打赏个咖啡☕️可好?💘