标签:monthly 查看 pool 特殊 status 命名 指令 情况下 replace
linux环境下定时或者周期性的执行一些任务通常由cron这个守护进程来完成,这是一个系统自带的相对也比较方便的系统工具。
cron进程能实现定时任务这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
一般是系统自带,如果没有需要自己装下
sudo apt-get install cron
crontab [ -u user ] [ -i ] { -e | -l | -r } //省略用户表示操作当前用户的crontab
(默认操作是 replace)
-e (编辑用户的工作表)
-l (列出用户的工作表)
-r (删除用户的工作表)
-i (在删除用户的crontab文件时给确认提示)
我们用crontab -e 既可进入当前用户的工作表编辑
第一次使用crontab 时,会出现以下提示:
root@ubuntu:# continue -e
Select an editor. To change later, run ‘select-editor‘.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
这个提示是让用户选择编辑器,正常情况下我们选择第三个就可以。如果选错了可以执行select-editor命令在选择一次。
root@ubuntu:# continue -e
Select an editor. To change later, run ‘select-editor‘.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
Choose 1-4 [2]: 3
root@B-OPS-68-1:~#
用crontab -e进入当前用户的工作表编辑
crontab的配置语法为 时间+动作,其时间有分、时、日、月、周 五种,每个时间注意用空格分开,动作就是你要执行的命令
格式:
分 minute (m) | 小时 hour (h) | 日 day of month (dom) | 月 month (mon) | 星期 day of week (dow) | 命令 |
---|---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-6 | command |
其中时间还可以使用下列特殊字符,更细致的设置时间
小 结:
数字的表示最好用阿拉伯数字显示
周和日最好不要同时用
定时任务要加注解
可以定向到日志文件或者空文件
定时任务一定是绝对路径,且目录必须存在才能出结果
crontab 服务一定要开启运行
着重说明一下,只有root用户才具有对cron服务的权限。
用crontab -e进入任务配置编写,内容如下图
* * * * * echo "hello world...\n" >> /var/log/test.log
执行cat /var/log/test.log,结果
实例
实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
service cron start //启动服务
service cron stop //关闭服务
service cron restart //重启服务
service cron reload //重新载入配置
service cron status //查看服务状态
tail /var/log/syslog //使用crontab进行设置定时任务,任务没有执行,查看系统日志排查
ps -ef | grep cron //查看cron 进程是否存在
ubuntu 16.04 周期定时任务 crontab 的 使用
标签:monthly 查看 pool 特殊 status 命名 指令 情况下 replace
原文地址:https://www.cnblogs.com/makalochen/p/12784314.html