centos 设置定时任务执行指定脚本

本文介绍了一个具体的Cron定时任务配置案例,展示了如何设置每日凌晨执行数据库及版本库备份的任务,并提供了用于备份MySQL数据库和Subversion版本库的具体Shell脚本。

vi /etc/crontab

[plain]  view plain  copy
  1.   1 SHELL=/bin/bash  
  2.   2 PATH=/sbin:/bin:/usr/sbin:/usr/bin  
  3.   3 MAILTO=root  
  4.   4 HOME=/  
  5.   5   
  6.   6 # For details see man 4 crontabs  
  7.   7   
  8.   8 # Example of job definition:  
  9.   9 # .---------------- minute (0 - 59)  
  10.  10 # |  .------------- hour (0 - 23)  
  11.  11 # |  |  .---------- day of month (1 - 31)  
  12.  12 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...  
  13.  13 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  
  14.  14 # |  |  |  |  |  
  15.  15 # *  *  *  *  * user-name command to be executed  
  16.  16   
  17.  17 01 0 * * * root /data/backup/168/backup.sh  
  18.  18 01 0 * * * root /data/backup/ty/backup.sh  


vi /data/backup/168/backup.sh

[plain]  view plain  copy
  1. 1 rq=` date +%Y%m%d%H%M%S`  
  2. 2 mysqldump etdsprodb -uroot > /data/backup/168/etdsprodb_$rq.sql  
  3. 3   
  4. 4 rq=` date +%Y%m%d%H%M%S`  
  5. 5 mysqldump etdsreport -uroot > /data/backup/168/etdsreport_$rq.sql  
  6. 6   
  7. 7 rq=` date +%Y%m%d%H%M%S`  
  8. 8 svnadmin dump /data/svnrepos/etds|gzip  > /data/backup/168/svnetds_$rq.dump.tar.gz  
<think>好的,用户想了解CentOS中crontab命令的用法和解析。首先,我需要回忆crontab的基本知识,确保信息准确。记得crontab是用来设置周期性执行任务的,和系统服务crond有关。用户可能想知道如何编辑、查看、删除定时任务,还有时间格式的写法。 根据引用内容,crond服务需要运行,所以应该提到如何检查服务状态,启动和重启服务。比如用systemctlstatus crond.service,如果没运行就用start。用户可能遇到定时任务执行的情况,这时候服务状态很重要,引用4里提到了相关命令。接下来,crontab的常用命令,比如crontab-e编辑,-l查看,-r删除。要详细说明每个选项的作用。时间格式的五个字段:分钟、小时、日、月、周,还有特殊字符如*和,的使用。需要举例说明,比如每天的凌晨执行任务,或者每周一的某个时间。用户可能对权限有疑问,需要提到/etc/crontab是系统级任务,而crontab -e是用户级的。引用3提到系统内置的crontab,不需要额外安装,这点要强调。还要注意常见问题,比如环境变量问题,路径问题,或者脚本没有执行权限。引用4里提到检查服务是否运行,可能还要看日志/var/log/cron来排查问题。 最后,生成相关问题,帮助用户深入理解,比如如何调试不执行的任务,或者如何设置每分钟的任务。确保问题覆盖用户可能遇到的难点,比如权限、时间格式错误等。</think>### CentOS定时任务命令crontab用法与解析 #### 一、crond服务基础 1. **服务状态管理** crontab依赖`crond`服务,需确保其处于运行状态: ```bash systemctl status crond.service # 查看状态 systemctl start crond.service # 启动服务(若未运行) systemctl restart crond.service # 重启服务[^4] ``` 2. **服务作用** `crond`是Linux的守护进程,用于周期执行任务(如日志清理、数据备份等),与Windows计划任务类似[^2]。 --- #### 二、crontab命令核心用法 1. **编辑任务** ```bash crontab -e # 编辑当前用户的定时任务(自动调用vi编辑器) ``` 任务格式: ```bash * * * * * command_to_execute │ │ │ │ │ │ │ │ │ └─ 星期(0-6,0=周日) │ │ │ └─── 月份(1-12) │ │ └───── 日(1-31) │ └─────── 小时(0-23) └───────── 分钟(0-59) ``` 2. **查看/删除任务** ```bash crontab -l # 列出当前用户的任务 crontab -r # 删除所有任务(谨慎使用) ``` 3. **系统级任务** 直接编辑`/etc/crontab`文件(需root权限),格式需额外指定用户: ```bash * * * * * username command ``` --- #### 三、时间表达式示例 | 表达式 | 含义 | |---------------|-------------------------------| | `0 3 * * *` | 每天凌晨3点执行 | | `*/5 * * * *` | 每5分钟执行一次 | | `0 12 1,15 * *` | 每月1日和15日中午12点执行 | | `30 8 * * 1` | 每周一上午8:30执行 | --- #### 四、常见问题排查 1. **任务未执行** - 检查`crond`服务状态[^4] - 查看日志:`tail -f /var/log/cron` - 确认命令路径为绝对路径(如`/usr/bin/python3`) - 脚本执行权限:`chmod +x script.sh` 2. **环境变量问题** 在任务中显式声明环境变量: ```bash * * * * * export PATH=/usr/local/sbin:/usr/local/bin:$PATH && /path/to/command ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值