Mac 自动备份专案 (Rsync/FreeFileSync + crontab)

FreeFileSync搭配crontab

顺序说明:
1.FreeFileSync设定备份镜像的设定
2.储存为批次档
3.Terminal 执行 crontab -e
4.
按"i"切换为输入模式,输入下方*
30 17 * * 1-5 /Applications/FreeFileSync.app/Contents/MacOS/FreeFileSync /Users/userNAME/Documents/tempNas/BatchRun.ffs_batch
按"ESC"切换为指令模式
:wq存挡

*注释:
cron 设定解释
30 17 表示每天的 17:30 (即下午五点半)。

1-5 表示每月的每天,仅在週一到週五执行。
后面的命令是启动 FreeFileSync 并指定批处理档案的完整路径。

问题与解法

一开始测试FreeFileSync在Mac上搭配crontab排程执行
有得到错误:
『无法开启档案 ".../BatchRun.ffs_batch"。
EPERM: Operation not permitted [open]』

因为crontab要执行应用程式档案时,有些执行权限的问题
尝试用chmod修改执行批次档的权限
但结果仍然相同,看来问题不在这里

后来爬文找到解法
https://apple.stackexchange.com/questions/378553/crontab-operation-not-permitted
设定-保安与隐私-完整磁碟取用-
这里按“+”符号,并
1.执行组合键cmd+shift+G
2.输入/usr/sbin
3.在右侧选择cron档案

这样crontab执行时,就不会有权限的问题的

rsync搭配crontab

爬文时刚好看到这篇分享 rsync
https://www.minwt.com/mac/21562.html
于是就测试用rsync指令配crontab排程
两者都是Mac内建,不用另外安装软体,挺方便的
也没有权限的问题

语法纪录
30 17 * * 1-5 /usr/bin/rsync -avz --delete --exclude 'node_modules/' --exclude 'builds/' /Users/userNAME/WEB/work/NBproject/ /Users/userNAME/Library/CloudStorage/OneDrive-个人/personalNas/NBproject/ >> /Users/userNAME/Library/CloudStorage/OneDrive-个人/personalNas/rsync_log.txt 2>&1

*注释:

30 17:表示每天的 17:30 (即下午五点半)。1-5:这些星号表示每个月的每天,1-5 表示星期一到星期五。最后的命令是 rsync 命令,包括所有参数。

/Users/haixuanwang/rsync_log.txt 2>&1 将标準输出和错误重新导向到记录档,以便你可以查看历史运行记录和可能出现的错误。

--delete 在比对目的与来源资料时,若目的有来源所没有的档案,会自动帮忙删除--exclude 排除不需要备份的资料夹

说明

-a (archive) 模式:同步目录时保留符号连结、装置档案、属性等。-v (verbose):提供详细的运行资讯。-z (compress):在传输时压缩资料,适用于跨网路同步。--delete:删除目标目录中存在而源目录中不存在的档案,使目标目录保持

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章