linux中通过crontab指令管理定时任务
crontab [-u username] [-l|-e|-r]
参数:
-u: 只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;
-e: 编辑crontab 的工作内容;
-l: 查阅crontab的工作内容;
-r: 删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑。
范例一
用dmtsai的身份在每天的12:00发信给自己
crontab -e
#此时会进入vi的编辑界面让你编辑工作。注意到,每项工作都是一行。(熟悉cron表达式的同学看上去应该会很容易理解)
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |《==============命令行=======================》|
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 需要执行的shell命令 |
周的数字为0或7时,都代表“星期天”的意思。另外,还有一些辅助的字符,大概有下面这些:
特殊字符 | 代表意义 |
---|---|
*(星号) | 代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。 |
,(逗号) | 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command。时间还是有五列,不过第二列是 3,6 ,代表3与6都适用 |
-(减号) | 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command。仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思 |
/n(斜线) | 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:/5 * * * * command。用与/5来搭配,也可以写成0-59/5,意思相同 |
为当前用户创建cron服务
1.键入 crontab -e 编辑crontab服务文件
例如 文件内容如下:
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
保存文件并并退出
2.查看该用户下的crontab服务是否创建成功
用 crontab -l 命令
3.启动crontab服务
一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意 下 不同版本linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务。不同的类Unix系统与不同发行版本的Linux系统启动crontab服务的命令都不同若发现已上述命令没有效果请根据自己的系统版本查询。
4.查看服务是否已经运行
ps -ax | grep cron
5.crontab命令
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
6.crontab命令选项:
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
7.新增调度任务
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
8.查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
9.删除任务调度工作
crontab -r //删除所有任务调度工作
删除单项调度任务请使用crontab -e编辑crontab文件