CentOS7下的任务计划

若要在固定时间触发某个作业,就需要创建任务计划。CentOS 7下可以通过修改/etc/crontab/文件或者使用 crontab命令实现任务计划。

1、 /etc/crontab文件

root用户模式下,在命令行输入vi /etc/crontab即可打开上述文件,内容如下:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 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

若要设置每天晚上21:30分执行/root/backup.sh文件,仅需要在该文末尾增加一行如下:

30 21 * * * root /root/backup.sh  # 共7个字段

此时,backup.sh中的内容是一些文件备份命令,如下实例:

#!/bin/bash
#定时备份文件,文件名包含备份具体时间
tar -zcvf ~/backup/boot_$(date -d "today" +"%Y%m%d_%H%M").tar.gz /boot

注意:仅root用户可通过修改/etc/crontab文件来实现任务计划

2、crontab命令

任何用户都可通过crontab命令来实现任务计划,例如:
a、在linux用户模式下,通过输入crontab -e编辑用户linux的任务计划文档,如下所示;

[linux@master ~]$ crontab -e

13 * * * * touch /home/linux/tt # 当前小时的第13分钟时创建一个文件tt
25 * * * *  tar zcvf /home/linux/backup/linux_home.tar.gz /home/linux # 当前小时的第25分钟时创建一个文件linux_home.tar.gz 

b、上述输出结果显示,当前linux用户有两个任务计划,如需要再添加,仅需要在末尾增加一行并按规定填写计划内容即可;

c、上述任务计划写入的文件是:/var/spool/cron/linux <— 用户名

3、 /etc/crontab文件与crontab命令比较

  • 仅root用户才能通过修改/etc/crontab文件实现任务计划,所有用户都可使用crontab命令实现任务计划;
  • 任务计划的格式不同:/etc/crontab有7个字段设置,crontab命令仅有6个字段需设置。
### CentOS 7 计划任务配置方法 #### 验证 Crontab 是否已安装 在 CentOS 7 中,默认情况下 `crond` 服务已经安装并启动。可以通过以下命令验证是否安装了 `crontab` 工具: ```bash rpm -qa | grep crontab ``` 如果没有返回任何结果,则表示未安装,可以使用以下命令进行安装[^2]: ```bash yum -y install crontabs ``` #### 查看 Crond 服务状态 为了确认 `crond` 服务正在运行,可执行以下命令查看其运行状况: ```bash systemctl status crond ``` 此命令将显示当前的服务状态以及最近的日志记录[^3]。 #### 编辑用户的 Cron 表 每个用户都可以维护自己的计划任务列表。通过以下命令编辑当前用户的 Cron 表: ```bash crontab -e ``` 这将打开默认的文本编辑器(通常是 vi 或 nano),允许添加新的计划任务条目。Cron 的基本语法结构如下: ``` * * * * * command_to_execute - - - - - | | | | | | | | | +----- 星期几 (0 - 7) (星期天为0或7) | | | +------- 月份 (1 - 12) | | +--------- 日期 (1 - 31) | +----------- 小时数 (0 - 23) +------------- 分钟数 (0 - 59) ``` 例如,要每天凌晨两点清理缓冲区缓存,可以添加以下内容[^5]: ```bash #!/bin/bash currtDay=$(date +%F) startTime=$(date +%F\ %T) echo "$startTime 开始清除缓存" # sync;sync;sync # 写入硬盘,防止数据丢失 sleep 10 # 延迟10秒 echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches endTime=$(date +%F\ %T) echo "$endTime 清除缓存完成" ``` 保存退出后,上述脚本将在指定时间自动执行。 #### 添加全局级别的 Cron 文件 对于需要更复杂调度逻辑的任务,或者希望多个用户共享同一组计划任务的情况,可以将这些任务定义在 `/etc/cron.d/` 目录下的独立文件中。这些文件遵循与 `/etc/crontab` 完全相同的语法规则[^4]。 #### 列出现有 Cron 作业 若想查看某个特定用户的所有 Cron 条目,只需输入: ```bash crontab -l ``` 如果是 root 用户想要查询其他用户的 Cron 设置,则需加上用户名参数,比如: ```bash crontab -u username -l ``` #### 删除现有的 Cron 作业 删除所有属于当前登录用户的 Cron 调度项可通过简单的一行指令实现: ```bash crontab -r ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值