计算机网络/计算机科学与应用/系统/运维/开发

Linux 计划任务的2种方式

计划任务分为2种:


一次性调度任务

循环调度执行


(不做重定向的情况下,计划任务执行中的所有输出都会以邮件的形式发送给指定用户)


一次性调度:

at命令,适用于突发性和临时性任务


安装at,启动atd进程,设置为开机启动

# yum -y install at

# systemctl start atd

# systemctl enable atd


at命令的语法格式:

at <TIMESPEC>

注释:timespec 时间规格


TIMESPEC形式如下:

now +5min:从当前时间开始

teatime tomorrow (teatime is 16:00)

noon +4 days

5pm august 3 2019


实例1:在1分钟后,创建用户名为linux的普通用户

# at now +1min

at> useradd linux

at> <EOT>


使用at命令时,按ctrl+d 键可以结束输入


atq命令查看系统中待执行的任务列表

# atq


注:如果任务较多,上诉方法较为繁琐,可以将命令系写入一个文件,并通过重定向输入到at命令中





实例2:

创建一个文件at.jobs 写入2条创建普通用户的命令,同时在/home目录下创建一个以当天时间命名的文件

[root@Linux ~]# cat at.jobs 

useradd linux01

useradd linux02


touch /home/`date +%F`_file.txt


[root@Linux ~]# at now +1min < at.jobs 

job 1 at Thu Oct 20 17:20:00 2022


[root@Linux ~]# id linux01

uid=1004(linux01) gid=1004(linux01) groups=1004(linux01)

[root@Linux ~]# id linux02

uid=1005(linux02) gid=1005(linux02) groups=1005(linux02)

[root@Linux ~]# ls /home/

2022-10-20_file.txt  alice  hello.ltxt  linux01  linux02  mysql  test  testfile.txt  test.txt  zhangsan


循环调度执行:

cron控制


查看进程状态

# systemctl status crond


crond进程每分钟处理一次计划任务,查看是否有任务需要执行

例如:

某任务需要10分钟执行一次,其他任务可能需要20分钟或者数小时执行一次,

crond进程会每分钟对这些任务扫描一次,如果某一个任务到了执行时间,将执行该任务


用户级:


生活的强者,不是指能搞定一切困难,也不是指没有恐惧,而是就算心里藏着无尽的疲惫和委屈,还是会认真地做好手头上的事情;就算自己被生活锤得心灰意冷,还是会尽心尽力地负起责任;就算发现现实与理想的差距有十万里,虽然鞭长莫及,却依然马不停蹄。

评论

^