设置一次性任务计划 crontab,at

本文详细介绍了如何在Linux系统中使用at命令设置一次性任务计划,以及利用crontab进行周期性任务的配置。涵盖了从基本命令操作、任务计划的创建与管理,到crontab的高级使用技巧,如环境变量设定、执行路径定义及任务输出管理。

设置一次性任务计划: at

​ date 确认当前的系统时间
​ 2018年 12月 29日 星期六 18:15:33 CST

  1. 在此计算机当前时间之后设置 “一次性任务计划:统计该时间点由root用户运行的进程”
    例: at 23:59 2018-12-29
    at>pgrep -U root | wc -l > /tmp/ps.root
    ctrl +D (提交任务计划)

    验证:等待时候过后打开临时文件,检查有没有垃圾文件
    cat /tmp/ps.root

  2. 在当天的21:30分自动关闭操作系统
    date
    at 21:30
    ac> shutdown -h now
    at> ctrl +d
    查询还没有执行的任务:atq
    删除还没有执行的任务:atrm :查看当前还没有执行的命令序号:atq
    6 Sun Dec 30 02:33:00 2018 a root
    删除序列号 : atrm 6


crontab 周期性任务设置

设置周期性任务的前提条件:crond系统服务必须执行

/etc/crontab ;系统任务配置文件
/etc/cron.d ;系统任务目录
/var/spool/cron ;用户cron任务的配置文件


一:crontab的配置文件与目录

/etc/crontab----系统任务配置文件 查看配置文件: cat /etc/crontab
该文件中包括设置shell环境,可执行路径,以及每小时,每天,每周,每月需要执行的任务目录

[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash 设置执行计划任务的shell环境
PATH=/sbin:/bin:/usr/sbin:/usr/bin 定义可执行命令以及程序的路径
MAILTO=root 将任务输出到指定用户的邮箱


二:/var/spool/cron ; 用户cron(任务计划)的配置文件存放目录

不同用户的cron任务计划配置文件: ls -l /var/spool/cron/*

例如 tom 用户 : /var/spool/cron/tom


三:使用crontab命令管理用户的计划任务

crontab 常用选项:
-e 编辑计划任务列表
-u 指定所管理的任务计划属于哪个用户
-l 列表显示计划任务
-r 删除计划任务列表

* 代表任意时间
分钟取值:0~59的任意数值
小时取值:0~59的任意数值
日期取值:1~31的任意数值
月份取值:1~12的任意数值
星期取值:0~7的任意数值

命令: 可以是普通的命令,也可以是自己编写的脚本目录位置

  • - 减号 :可以表示一个连续的时间范围,比如:1-4
  • ,逗号 :可以表示一个间隔不连续的范围,比如:3,6,8,10
  • / 撇斜杠:指定间隔频率 ,比如 */3(表示每隔3天)


举例:

每分钟执行一次

* * * * * sh /usr/local/pushgateway/waiting_connection.sh


每10秒中执行一次

* * * * * sh /usr/local/pushgateway/waiting_connection.sh
* * * * * sleep 10; sh /usr/local/pushgateway/waiting_connection.sh
* * * * * sleep 20; sh /usr/local/pushgateway/waiting_connection.sh
* * * * * sleep 30; sh /usr/local/pushgateway/waiting_connection.sh
* * * * * sleep 40; sh /usr/local/pushgateway/waiting_connection.sh
* * * * * sleep 50; sh /usr/local/pushgateway/waiting_connection.sh

1.每天早上7:50自动开启sshd服务 ;22:50关闭sshd服务

50 7 * * * /usr/bin/systemctl start sshd.service
50 22 * * * /usr/bin/systemctl stop sshd.service


2.每隔五天清空一次FTP服务器公共目录/var/ftp/pub

0 0 */5 * * /usr/bin/rm -rf /var/ftp/pub


3.每周六的7:30分重启系统中的httpd服务

30 7 * * 6 /usr/bin/systemctl restart httpd.service

4.每周一,周三,周五,下午18:00用tar命令备份/var日志文件

0 18 * * * 1,3,5 /usr/bin/tar -zcvf var.tar.gz1 /var

5.查看当前用户所有设置好的任务计划 :

crontab -l
或 : ls -l /var/spool/cron/* ls -l /var/spool/cron


6.查看指定用户的所有设置好的任务计划

crontab -l -u zs


7…删除任务计划

crontab -r
验证: crontab -l

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、付费专栏及课程。

余额充值