网站文章被采集,昆明网站建设 技术支持,上海seo网站设计,微信小程序制作平台官网今天想了解一下Linux Crontab。嗯#xff0c;在Windows上#xff0c;可以看做和定时任务差不多。
“要在特定时间进行特定工作。”
如果是这样#xff0c;可以使用crontab#xff0c;轻松使用Linux。
1. 基本 (crontab basic)
先看一下基本的crontab使用方法吧。在Linu…今天想了解一下Linux Crontab。嗯在Windows上可以看做和定时任务差不多。
“要在特定时间进行特定工作。”
如果是这样可以使用crontab轻松使用Linux。
1. 基本 (crontab basic)
先看一下基本的crontab使用方法吧。在Linux shell中输入如下内容
$ crontab -e那么可以编辑的地方就会加载这里就是可以设置crontab的地方。
在这里输入各种crontab指令后输入colon(:)后输入wq更新crontab吧。
相反如果您想查看当前crontab中包含哪些内容请输入以下内容
$ crontab -l那么就像用cat指令读取文件一样以标准输出显示crontab内容。
但是虽然几乎没有如果想删掉crontab呢
在Linux Shell中输入如下内容
$ crontab -r这样就学会了crontab的基本设置、确认和删除。那么在crontab上注册一个Cron实践一下吧。
如下所示输入crontab-e后请输入以下内容。保存时像vi一样输入Colon(:)后更新为wq即可。
* * * * * ls -al有五颗星还有后面写着命令语这是基本使用方法。当然不仅可以使用ShellScript还可以使用Linux命令。这里用ShellScript的方法进行了说明。
如果有五颗星就会每分钟运行一次让我们仔细看看星星指的是什么吧。
2. 周期设定
2.1 基本格式
一个典型的crontab文件由五或六个字段组成每个字段代表一个时间单位后面跟着要运行的命令。
* * * * * command to execute
- - - - -
| | | | |
| | | | ----- 星期中星期几 (0 - 7) (星期天为0或7)
| | | ------- 月份 (1 - 12)
| | --------- 一个月中的第几天 (1 - 31)
| ----------- 小时 (0 - 23)
------------ 分钟 (0 - 59)2.2 字段详解
*代表该字段的所有可能值。例如第一个星号代表每分钟。,用于分隔列表中的项目。例如1,3,5代表第1分钟、第3分钟和第5分钟。-用于定义范围。例如1-5代表从第1分钟到第5分钟。/用于指定步长值。例如*/2代表每隔两分钟。
2.3 示例
*/15 * * * * command每15分钟执行一次命令。0 8 * * * command每天早上8点执行一次命令。0 8 1 * * command每月1日的早上8点执行一次命令。0 8 * * 5 command每个星期五的早上8点执行一次命令。
2.4 特殊字符
reboot指定命令在每次重启时执行。yearly等同于0 0 1 1 *每年运行一次。annually同yearly。monthly等同于0 0 1 * *每月运行一次。weekly等同于0 0 * * 0每周运行一次。daily等同于0 0 * * *每天运行一次。hourly等同于0 * * * *每小时运行一次。
2.6 注意事项
命令应该使用绝对路径。crontab环境变量和登录shell可能不同因此建议在命令中使用完整的路径。crontab默认不会发送邮件除非你在命令后面加上 /dev/null 21来忽略输出。确保服务是启动的通常使用systemctl start cron或service cron start。
3. 按周期分类的示例
3.1 每分钟运行
# 每分钟 执行 test.sh
* * * * * /home/script/test.sh3.2 特定时间执行
# 每周 星期五 上午 5点 45分 执行 test.sh
45 5 * * 5 /home/script/test.sh3.3 反复执行
# 每日 每时 0分, 20分, 40分 执行 test.sh
0,20,40 * * * * /home/script/test.sh3.4 范围执行
# 每日 1点0分到30分 每分钟 执行 test.sh
0-30 1 * * * /home/script/test.sh3.5 间隔执行
# 每间隔 10分钟 执行 test.sh
*/10 * * * * /home/script/test.sh3.6 稍微复杂执行
# 5日到6日 2点3点4点 每10分 执行 test.sh
*/10 2,3,4 5-6 * * /home/script/test.sh4. 使用小贴士
4.1 一行只写一个命令
# 错误的例子
* * * 5 5
/home/script/test.sh# 好的例子
* * * 5 5 /home/script/test.sh4.2 加个注释
# 注释 #
#--------------------#
# 这是注释 #
#--------------------## 输入后面出现的全部文字都可以进行注释。
5. 日志 (cron logging)
使用crontab定期处理作业是很好的但有时想留下有关处理明细的日志。那个时候像下面一样写一下
* * * * * /home/script/test.sh /home/script/test.sh.log 21如上填写每分钟更新test.sh.log文件以了解作业内容是如何处理的。如果删除21ShellScript只显示标准输出内容。21就在这里确认吧。
但是如果这个运行太频繁而且需要持续加载所以要继续保留日志的话输入如下
* * * * * /home/script/test.sh /home/script/test.sh.log 21那么就可以确认日志一直在累积。但是如果日志堆积过多会影响Linux的性能因此需要偶尔空出或重新创建文件的意识。
相反日志是为不要的cron输入如下内容
* * * * * /home/script/test.sh /dev/null 216. 备份 (crontab backup)
好如果使用 crontab-r或者不小心把crontab目录弄丢现有的crontab明细都没了真的会很慌张的。所以让我们定期备份crontab吧。 备份有如下方法。
crontab -l /home/bak/crontab_bak.txt把crontab的内容做成txt文件保存。好这个也能实现自动化吗
50 23 * * * crontab -l /home/bak/crontab_bak.txt这样做就可以了吧这是每天晚上11点50分备份crontab的Cron指令。
简单地了解了一下crontab。如果有需要添加的内容或与实际不符的部分请留言。