备份机制

使用 sleepwatcher 包在每次电脑唤醒时,触发备份脚本。

使用brew安装sleepwatcher

brew install sleepwatcher

设置自启动

brew services start sleepwatcher

查看sleepwatcher进程是否启动

ps aux | grep sleepwatcher

可以看到监听了两个脚本文件,分别是.sleep 和 .wakeup,对应睡眠和唤醒。

zs            12758   0.0  0.0 34170500   1304   ??  S     3:15下午   0:00.02 /usr/local/opt/sleepwatcher/sbin/sleepwatcher -V -s /Users/zs/.sleep -w /Users/zs/.wakeup

.sleep 和 .wakeup 文件默认没有,需创建

touch .sleep
touch .wakeup
sudo chmod +x .sleep
sudo chmod +x .wakeup

创建备份脚本

先创建一个脚本文件 backups-data.sh

#!/bin/sh

# 该脚本用于备份 mysql 数据和 程序源码

curDate=$(date +"%Y-%m-%d")

ssh testHost \
  "mysqldump -f xxx_db|bzip2 -c" \
  > /Users/zs/abc/$curDate-mysql.bzip2 # 登录到远程主机,备份xxx_db数据库并压缩,最后传回本地
ssh testHost "tar -czvf $curDate-source.tar.gz -C /home/zs/ xxx-bak-dir" # xxx-bak-dir 表示需要备份的目录
scp testHost:/root/$curDate-source.tar.gz /Users/zs/abc/ # 使用 scp 将备份的压缩包传回本地
ssh testHost "rm -rf $curDate-source.tar.gz" # 备份完后删除远程压缩包

注意:

1,ssh testHost 需要提前配置 ssh 免密登录,请参考 客户端>使用二

2,上面的 zs 表示系统用户名