作为一个新工具,小白突然接触crontab,必然会触及Linux基本规则的一些雷区。在此,我顺带记录下自己的经历,以供日后他人借鉴。
外围命令
制定任务计划,应注意以下事项,而不是写任务说明:
1.每次修改crontab任务计划命令后,执行以下命令
systemctl reload crondsystemctl restart crond
2.向文件添加可执行权限。
chmod +x ./cron.sh
3.脚本规范——写在脚本的开头。
#!/bin/bash
4.绝对路径:某些软件支持的命令需要通过写完整路径来调用,比如我平时用的这个。
downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 数据库密码
需要修改以
/opt/downloadcsv/downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 数据库密码
5.权威问题
如下,只需创建一个新的。sh文件,并在其中输入执行时间,按照执行计划的要求逐行执行用户和执行命令。
关键是这个。sh文件必须被授予执行权限,这可以通过以下命令来授权:
chmod +x ./cron.sh
此外,如果命令语句涉及到日志文件的写入,则应事先构建日志文件,并进行写入授权,以免出错。
Crontab命令和语法
我们可以将crontab命令分为两类:
一个是crontab任务计划本身的命令,一个是crontab工具的操作指令。
1、crontab任务计划指令语法
1.crontab任务计划指令语法
图片来自网络-侵删
在上述每个字段中,您还可以使用以下特殊字符:
“*”表示值范围内的所有数字。如果月份字段为*,则表示1到12个月;
“/”意思是每隔一定的时间间隔。例如,如果分钟字段为*/10,则意味着每10分钟执行一次。
“-“从一定的区间范围来看,是封闭区间。例如“2-5”表示“2,3,4,5”,小时字段中的0-23/2表示在0~23点的范围内每2小时执行一次。
“,”零散的数字(不一定是连续的),比如1,2,3,4,7,9。
注意:由于每个星期的第一天在不同的地方是不同的,所以Sunday=0(第一天)或Sunday=7(最后一天)。
2.任务规划命令语法示例:
通过crontab -e调出crontab任务计划编辑页面(还有一种方法是直接在vi /etc/crontab文件中编辑: ),然后在弹出的编辑页面中输入以下命令
* */1 * * * root /opt/downloadcsv/downloadcsv/cron.sh# 强烈建议把用户(root)加上,否则可能执行过程中会出现没有权限无法执行的情况。
上面的命令表明sh命令文件每1小时作为root执行一次。
crontab工具操作说明
crontab [-u user] filecrontab [ -u user ] [ -i ] { -e | -l | -r }? -u user:用于设定某个用户的crontab服务;? file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;? -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;? -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;? -r:从/var/spool/cron目录中删除某个用户的crontab文件。? -i:在删除用户的crontab文件时给确认提示。
本文来自墨尔本·晴投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/509188.html