linux计划任务
计划任务
任务调度级别分为:
计划任务的方式分为两种
at安装at [[email?protected] ~]# yum install at 启动atd服务 [[email?protected] ~]# systemctl start atd [[email?protected] ~]# systemctl status atd ● atd.service - Job spooling tools Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-06-01 20:19:06 CST; 4s ago Main PID: 7404 (atd) 设置atd任务 [[email?protected] ~]# at 12:35 at> mkdir /opt/hhh at> <EOT> job 4 at Sat Jun 1 12:35:00 2019
设置atd任务的其他指定时间方式 at 20:00 2018-10-1 在某一天 at now +10min 在10分钟之后执行 at 17:00 tomorrow 明天下午5点执行 at 6:00 pm +3 days 在三天以后的下午6点执行 查看是否生效 [[email?protected] ~]# date Sat Jun 1 12:34:47 CST 2019 [[email?protected] ~]# ls /opt/ [[email?protected] ~]# date Sat Jun 1 12:35:17 CST 2019 [[email?protected] ~]# ls /opt/ hhh 查看所有任务(atq | at -l) [[email?protected] ~]# at 20:00 2019-06-01 at> mkdir /opt/test at> <EOT> job 7 at Sat Jun 1 20:00:00 2019 [[email?protected] ~]# atq 7 Sat Jun 1 20:00:00 2019 a root [[email?protected] ~]# at -l 7 Sat Jun 1 20:00:00 2019 a root 查看具体任务的内容,需要使用上面查看的编号 [[email?protected] ~]# at -c 7 ... ${SHELL:-/bin/sh} << 'marcinDELIMITER11f8e4d7' mkdir /opt/test marcinDELIMITER11f8e4d7 或者可以查看这些任务存放位置(没有执行过的任务) /var/spool/at/ 删除计划任务 [[email?protected] ~]# atrm 7 [[email?protected] ~]# atq [[email?protected] ~]# crontab启动服务 [[email?protected] ~]# systemctl start crond [[email?protected] ~]# systemctl status crond ● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-06-01 19:49:40 CST; 6h left Main PID: 3933 (crond) 常用参数 crontab -e 编辑cron任务 crontab -r 删除cron任务 crontab -u mk 指定mk用户的cron服务 crontab -l 列出当前用户的cron服务的详细内容 crontab -u root -l 列出指定用户的cron计划任务 crontab -u mk -r root删除mk用户的cron计划任务 -e编辑时的语法 特殊符号含义 测试:
[[email?protected] ~]# crontab -e * * * * * echo "hhhh" >> /opt/echo.txt 过一段时间查看 [[email?protected] ~]# cat /opt/echo.txt hhhh hhhh 每天凌晨2点1分备份数据 [[email?protected] ~]# crontab -e 1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2 指定用户查看计划任务 [[email?protected] ~]# crontab -u root -l 1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2 * * * * * echo "hhhh" >> /opt/echo.txt 如果别人通过某一个用户写入计划任务,但是我们不知道是哪一用户,该如何排查呢 [[email?protected] ~]# crontab -u bin -e
[[email?protected] ~]# ls /var/spool/cron/ bin root 系统级别的计划任务系统任务调度的配置文件 [[email?protected] ~]# 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 echo "hhhh" >> /opt/echo.txt /etc/cron.d/ 是系统自动定期需要做的任务,但是又不是按照小时,天,星期,月来执行的,那就放在这个目录下面 cron.deny 控制 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |