linux计划任务

linux计划任务,第1张

概述计划任务 做一些周期性的任务,在生产中主要定时备份数据 任务调度级别分为: 用户任务调度 系统任务调度 计划任务的方式分为两种 at ----- 突发性,临时决定的,只执行一次的任务 arontab ----- 定时性,例行,每隔一定的周期重复执行 at 安装at [[email protected] ~]# yum install at 启动atd服务 [[email protected] ~] 计划任务

做一些周期性的任务,在生产中主要定时备份数据

任务调度级别分为:

@H_403_17@用户任务调度 @H_403_17@系统任务调度

计划任务的方式分为两种

@H_403_17@at ----- 突发性,临时决定的,只执行一次的任务 @H_403_17@arontab ----- 定时性,例行,每隔一定的周期重复执行 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: 7@R_419_6939@ (atd)

设置atd任务

[[email protected] ~]# at 12:35at> mkdir /opt/hhhat> <EOT>job 4 at Sat Jun  1 12:35:00 2019

处通过ctrl+d保存退出

设置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] ~]# dateSat Jun  1 12:34:47 CST 2019[[email protected] ~]# ls /opt/[[email protected] ~]# dateSat Jun  1 12:35:17 CST 2019[[email protected] ~]# ls /opt/hhh

查看所有任务(atq | at -l)

[[email protected] ~]# at 20:00 2019-06-01at> mkdir /opt/testat> <EOT>job 7 at Sat Jun  1 20:00:00 2019[[email protected] ~]# atq7   Sat Jun  1 20:00:00 2019 a root[[email protected] ~]# at -l7   Sat Jun  1 20:00:00 2019 a root

查看具体任务的内容,需要使用上面查看的编号

[[email protected] ~]# at -c 7...${SHELL:-/bin/sh} << 'marcinDEliMITER11f8e4d7'mkdir /opt/testmarcinDEliMITER11f8e4d7

或者可以查看这些任务存放位置(没有执行过的任务)

/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编辑时的语法
| |1|2|3|4|5|6|
|-|-|-|-|-|-|-|
|符号| * | * | * | * | * | * |
|解释|分钟|小时|几号|月份|星期几|command|
|取值范围|0-59|0-23|1-31|1-12|0-6|command|

特殊符号含义
|符号|含义|举例|
|-|-|-|
| * |代表取值范围内的任意数字|任意 / 每一天|
| / |指定时间的间隔频率| */10|
| - |代表从某个数字到某个数字|8-17|
|,|分开离散的几个数字|6,12-18,21|

测试:

每分钟写入hhhh到该文件

[[email protected] ~]# crontab -e* * * * * echo "hhhh" >> /opt/echo.txt

过一段时间查看

[[email protected] ~]# cat /opt/echo.txt hhhhhhhh

每天凌晨2点1分备份数据

[[email protected] ~]# crontab -e1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2

指定用户查看计划任务

[[email protected] ~]# crontab -u root -l1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2* * * * * echo "hhhh" >> /opt/echo.txt

如果别人通过某一个用户写入计划任务,但是我们不知道是哪一用户,该如何排查呢

[[email protected] ~]# crontab -u bin -e

所有用户的计划任务,都会在/var/spool/cron/下产生相应的文件

[[email protected] ~]# ls /var/spool/cron/bin  root
系统级别的计划任务

系统任务调度的配置文件
/etc/crontab

[[email protected] ~]# cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=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 控制

总结

以上是内存溢出为你收集整理的linux计划任务全部内容,希望文章能够帮你解决linux计划任务所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1023111.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存