本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、Crond
cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务。cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。cron该词来源于希腊语chronos,原意是时间。
规则:
Crontab 表达式规则:
注:Linux中没有second,最小是miniute。
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
例子:
表示每晚21:30分执行 30 21 * * *
每分钟执行一次命令* * * * * command(*表示任意时间,每;最小单位为每分钟)
每天的2点整执行一次命令0 2 * * * command
每个月的1号的2点整执行一次命令0 2 1 * * command
每2分钟执行一次命令*/2 * * * * command(/表示时间间隔,每num执行一次)
每小时的第2和第8分钟时执行一次命令2,8 * * * * command(,表示列表,在num1,num2,...的时候执行一次)
每天2点到8点之间,每分钟执行一次命令* 2-8 * * * command(-表示范围,在num1到num2之间的某种条件下执行一次)
每个月的、5和6号的、3到4点之间,每2分钟执行一次命令*/23-45,6 * * command(组合使用)
我的crond
SHELL=/bin/zsh
MAILTO=""
***** /Users/xxxx/Quiver/MBPAutoSave.sh >> ~/QuiverLog.txt2>&1&
*/3010-20**0 {echo"---$(date)---";
tail -n1 /Users/xxxx/QuiverLog.txt;
rm /Users/xxxx/QuiverLog.txt} >> ~/QuiverLogMonth.txt2>&1&
二、实现本地文件自动同步到GitHub
写脚本自动定时上传
首先,我们编写一个脚本文件,
给这个脚本取名autoSave.sh
这个脚本非常简单,内容如下:
#! /bin/zsh
cd /Users/suvancheng/Quiver/
git add.
git commit-m"crontab auto save"
git push
接着,给这个脚本增加权限(为了方便我直接就是chmod 777)
sudo chmod 777 autoSave.sh
有了脚本以后,我们就可以将这个脚本放到crontab上执行,在mac上使用crontab非常方便。我们现在只需要记住两个命令:
crontab -e #进入crontab编辑界面
***** /Users/suvancheng/Quiver/autoSave.sh > ~/QuiverLog.txt2>&1&
crontab crontab -l #查看crontab的命令
接下来只需要等一分钟,就可以看到GitHub上已经有内容上传了。 解释一下这条命令:
* * * * *标志我这行命令需要在每分钟执行一次/Users/suvancheng/Quiver/autoSave.sh标志我的脚本位置(这里需要用绝对路径)> ~/QuiverLog.txt 2>&1 &将脚本执行后的结果 输入到QuiverLog.txt文件上
完成!我们就可以看到每分钟都会将本地的文件内容上传到GitHub上了