|
http://www.17nyy.com/index.php/archives/19/
[root@localhost ~]# yum install crontab
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: ftp.iij.ad.jp
* extras: mirrors.aliyun.com
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirror.bit.edu.cn
没有可用软件包 crontab。
错误:无须任何处理
会发现找不到可用的服务包,然后在stackoverflow.com找到了答案:
On CentOS 7 you need to use cronie:
yum install cronie On CentOS 6 you can install vixie-cron, but the
real package is cronie:
yum install vixie-cron and yum install cronie In both cases you get
the same output:
.../...
================================================================== Package Arch Version Repository Size
================================================================== Installing: cronie x86_64 1.4.4-12.el6 base
73 k Installing for dependencies: cronie-anacron x86_64
1.4.4-12.el6 base 30 k crontabs noarch 1.10-33.el6 base 10 k exim x86_64 4.72-6.el6 epel 1.2 M
Transaction Summary
================================================================== Install 4 Package(s)
Note that on 6.x yum install crontabs will also install cronie,
cronie-anacron, and exim. Be sure to remember the service is crond and
it will need to be started (and chkconfig enable on)
然后借此机会记录一下,免得以后忘记了
cron安装
就是CentOS 7 使用
yum install cronie
而 CentOS 6 需要更多一个
yum install vixie-cron cronie
或者
yum install crontabs
crontab基本使用
查看crontab服务状态
[root@localhost ~]# service crond status
[root@localhost ~]# systemctl status crond.service
开启crontab
[root@localhost ~]# service crond start
[root@localhost ~]# systemctl start crond.service
关闭crontab
[root@localhost ~]# service crond stop
[root@localhost ~]# systemctl stop crond.service
重启crontab
[root@localhost ~]# service crond restart
[root@localhost ~]# systemctl restart crond.service
开机运行
[root@localhost ~]# systemctl enable crond.service
crontab基本格式
# * * * * * command
# | | | | |
# | | | | +---- week 星期(0 - 7) (星期天=0 or 7)
# | | | +------- month 月份(1 - 12)
# | | +---------- day 日期(1 - 31)
# | +------------- hour 小时(0 - 23)
# +---------------- minute 分钟(0 - 59) 每分钟用*或者 */1表示
crontab命令编辑
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //查看当前用户cron服务的详细内容
crontab -r //删除当前用户的cron服务
crontab -e //编辑当前用户的cron服务
编辑当前用户
crontab -e
0 */1 * * * command
查看某个用户
crontab -l -u root
删除某个用户
crontab -r -u root
crontab常用示例
30 21 * * * systemctl restart httpd.service
表示每晚21:30重启apache。
45 4 1,10,22 * * systemctl restart httpd.service
表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 systemctl restart httpd.service
表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * systemctl restart httpd.service
表示在每天18 : 00至23 : 00每隔30分钟重启apache。
0 23 * * 6 systemctl restart httpd.service
表示星期六晚上11点重启apache。
* */1 * * * systemctl restart httpd.service
每一小时重启apache
* 23-7/1 * * * systemctl restart httpd.service
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed systemctl restart httpd.service
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * systemctl restart httpd.service
表示一月一号的4点重启apache
cron信息记录在哪里
每次编辑完某个用户的cron信息后, cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的, 只可以用crontab -e 来编辑。
cron启动后每过一分钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
那如何要控制到秒级别呢??
[root@localhost cron]# clear
[root@localhost cron]# pwd
/var/spool/cron
[root@localhost cron]# ll
总用量 0
[root@localhost cron]# crontab -e
no crontab for root - using an empty one
* 2 * * * sdfsadfsd
"/tmp/crontab.JgDDT9" 1L, 20C written
crontab: installing new crontab
[root@localhost cron]# ll
总用量 4
-rw------- 1 root root 20 12月 13 07:39 root
[root@localhost cron]#
|
|