一次性计划任务at与周期性计划任务crontab

一、at一次性计划任务使用

at语法格式:

at 时间

at设置计划任务

1.下载at程序

[root@li ~]# yum install at -y

2.启动atd服务

[root@li ~]# systemctl restart atd

[root@li ~]# ps aux | grep atd

root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep –color=auto atd

3.设置at计划任务

[root@li ~]# at 10:00 #如果是上午时间,后面加上am,比如9:20am

at> touch /tmp/test1 #输入你要执行的命令 at> <EOT> #按ctrl+d保存

job 1 at Fri Mar 1 10:00:00 2019

[root@li ~]# at -l #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root

[root@li ~]# atq #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root

4.删除计划任务atrm

[root@li ~]# at -l #第一步查看计划任务,获取前面编号

1 Fri Mar 1 10:00:00 2019 a root

[root@li ~]# atrm 1 #删除计划任务加上编号

[root@li ~]# at -l #再次查看计划任务发现已经删除

5.at计划任务的特殊写法

[root@li ~]# at 20:00 2018-10-1 在某天

[root@li ~]# at now +10min 在 10分钟后执行

[root@li ~]# at 17:00 tomorrow 明天下午5点执行

[root@li ~]# at 6:00 pm +3 days 在3天以后的下午6点执行

6.查看at计划任务的详细信息

at -c jobid

[root@li html]# at 10:00
at> touch kk
at> <EOT>
job 2 at Tue May 14 10:00:00 2019
[root@li html]# at -c 2

二、crontab计划任务使用

语法:crontab 选项

常用选项:

-l:list,列出指定用户的计划任务列表

-e:edit,编辑指定用户的计划任务列表

-u:user,指定的用户名,如果不指定,则表示当前用户

-r:remove,删除指定用户的计划任务列表

制定计划任务

1.查看计划任务程序是否启动

[root@li ~]# ps aux | grep crond
root 1032 0.0 0.1 126232 1616 ? Ss 19:42 0:00 /usr/sbin/crond -n

2.查看计划任务

[root@li ~]# crontab -l
no crontab for root

3.编写计划任务(打印时间至/tmp/li)

[root@li bak]# crontab -e

* * * * * /usr/bin/echo 123 >> /tmp/li

4.查看计划执行结果

[root@li bak]# cat /tmp/li
123
123
123
123
123
123

5.删除计划任务

(1)crontab -r

(2)用#注释掉不需执行的任务

crontab 配置文件介绍

SHELL=/bin/bash(指定shell类型)
PATH=/sbin:/bin:/usr/sbin:/usr/bin(crontab命令执行路径)
MAILTO=root(发送邮件到/var/spool/mail/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

 

*:表示取值范围中的每一个数字

-:做连续区间表达式的,要想表示1~7,则可以写成:1-7

/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

 

*  * * * * /bin/systemctl restart network  #表示每天24小时每分钟都执行

1-7  * * * * /bin/systemctl restart network  #表示每天没小时的1-7分钟执行命令

*/10  * * * * /bin/systemctl restart network  #表示每天没小时的每10分钟执行命令

1,10,20 * * * * /bin/systemctl restart network  #表示每天没小时的第1分钟,10.分钟,20分钟执行命令

 

例子1:每月1、10、22日的4:45重启network服务

45 4 1,10,22 * * /usr/bin/systemctl restart network

 

例子2:每周六、周日的1:10重启network服务

10 1 * * 6,7 /usr/bin/systemctl restart network

 

例子3:每天18:00至23:00之间每隔30分钟重启network服务

*/30 18-23 * * * /usr/bin/systemctl restart network

 

例子5:每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T”`

转载于:https://www.cnblogs.com/Agnostida-Trilobita/p/10883452.html

Cron 是一个在 Unix 和类 Unix 系统中用来定期执行任务的守护进程。它允许用户设置周期性一次性(也称为一次性任务)的任务调度。如果你想要使用 crontab 进行一次性计划任务,你可以按照以下步骤操作: 1. 打开终端:在 Linux 或 macOS 中,你可以通过按下 `Ctrl + Alt + T` 快捷键打开终端。 2. 查看或编辑 crontab 文件:输入命令 `crontab -e`(如果你有多个用户账户,可能会提示你选择一个)。这将打开默认的文本编辑器,如 Vim 或 Nano,让你编辑 crontab 配置文件。 3. 创建新条目:在编辑器中添加一个新的行来指定你的一次性任务。每个条目由时间字段和命令组成。格式通常是这样的: ``` <分钟> <小时> <日期> <月份> <星期> <命令> ``` 例如,如果你希望在一个特定的未来日期运行一个命令,可以写成: ``` 0 12 15 12 * /path/to/your/command ``` 这表示在12月15日的中午12:00运行命令。 4. 描述任务:确保命令明确无误,包括完整路径,这样 cron 可以正确执行。如果命令复杂或需要参数,可以在命令行后添加分号,然后跟上所需的参数,例如: ``` 0 12 15 12 * /path/to/your/script.sh; echo "Task executed at $(date)" ``` 5. 保存并退出:编辑完后,记得保存并关闭编辑器。在 Vim 中按 `Esc` 键,然后输入 `:wq` 保存并退出;在 Nano 中按 `Ctrl + X`,然后按 `Y` 确认保存,再按 `Enter` 退出。 6. 验证任务:保存后,你需要让 cron 重新读取文件,可以通过输入 `crontab -u <username> -r` 清除当前配置,然后重新加载 (`crontab -u <username> -e`) 来确认设置是否生效。 完成以上步骤后,cron 将在你设定的时间点执行一次你的命令。一次性任务会在执行后自动从 crontab 中删除,除非你手动添加它到配置文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值