linux 系统计划任务cron:
1:检查cron服务
-检查Crontab工具是否安装:
crontab -l
-检查crond服务是否启动:
service crond status
-检查有哪些命令可以使用:
-Centos 7.3
[root@localhost bak]# service crond
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
[root@localhost bak]#
-Centos 6.5
[wuju@bogon ~]$ service crond
用法:/etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
[---@bogon ~]$ service crond status
crond (pid 1961) 正在运行...
[---@bogon ~]$
服务重启
1 /etc/init.d/crond restart
2 service crond restart
2:如果没有安装,则安装cron
- yum install vixie-cron
- yum install crontabs
3:示例说明
目的: 每分钟打印当前时间到一个日志文件中
- */1 * * * * date >> tmp/log.txt
步骤:
[root@localhost bak]# crontab -e
按下o:
进到最后一行:
输入
*/1 * * * * date >> tmp/log.txt
按ESC退出
输入:wq (写入并退出)
然后查看一下写入的情况:
ot@localhost bak]# crontab -l
*/1 * * * * date >> /tmp/log.txt # 写入成功
[root@localhost bak]#
查看是否执行成功:
[root@localhost bak]# date
Thu Mar 1 01:48:48 EST 2018
(实时展示当前日志)
[root@localhost bak]# tail -f /tmp/log.txt
Thu Mar 1 01:40:02 EST 2018
Thu Mar 1 01:41:01 EST 2018
Thu Mar 1 01:42:01 EST 2018
Thu Mar 1 01:43:01 EST 2018
Thu Mar 1 01:44:01 EST 2018
Thu Mar 1 01:45:01 EST 2018
Thu Mar 1 01:46:01 EST 2018
Thu Mar 1 01:47:01 EST 2018
Thu Mar 1 01:48:01 EST 2018
Thu Mar 1 01:49:01 EST 2018
查看crontab 命令相关:
[root@localhost bak]# crontab -help
crontab: invalid option -- 'h'
crontab: usage error: unrecognized option
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging
Default operation is replace, per 1003.2
[root@localhost bak]#
查看对应的写入的任务:
[root@localhost bak]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
[root@localhost bak]#
-------------------查看对应的----------------------------------------------
[root@localhost bak]# crontab -l
*/1 * * * * date >> /tmp/log.txt
[root@localhost bak]#
任务取消
删除crontab内容里的test2.sh的任务
其实该处是使用sed命令来处理/var/spool/cron/root 文件,将含test2.sh的行的内容删除掉。
sed -i '/test2.sh/d' /var/spool/cron/root
PS 定时任务说明:
(系统级的)做系统级配置我们会直接配置 /etc/crontab
(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。
方法1:
使用命令 crontab -e 然后直接编辑定时脚本。
这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。
如:
[root@localhost bak]# cd /var/spool/cron/
[root@localhost cron]# ll
total 4
-rw-------. 1 root root 34 Mar 1 01:36 root
[root@localhost cron]# pwd
/var/spool/cron
[root@localhost cron]# cat root
*/1 * * * * date >> /tmp/log.txt
[root@localhost cron]#
方法2:
使用命令 vi /etc/crontab 编辑定时脚本。
如:
使用命令 vi /etc/crontab 编辑定时脚本。
如:
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
30 * * * * root /usr/sbin/ntpdate 210.72.145.44
#30 8 * * * root /usr/sbin/ntpdate 132.228.90.101
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
*/1 * * * * root run-parts /opt/openoffice.org3/program/start.sh
############################################
30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete root@192.168.231.35::resource /hyy/bak/resource
30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete root@192.168.231.35::log /hyy/bak/log
############################################
[root@localhost ~]#
注意:在linux下的crontab会自动帮我们每分钟重新读取一次/etc/crontab的例行工作事项,但是某些原因或在其他的unix系统中,由于crontab是读到内存中,所以在您修改完/etc/crontab之后可能并不会马上执行,这时请重新启动crond服务。
/etc/rc.d/init.d/crond restart
网友评论