linux定时执行crontab.pdf
`Linux`的`crontab`是一个强大的定时任务调度工具,它允许用户按照预定的时间间隔执行任务。`crontab`的全称是`cron table`,意为“cron的表”,它通过读取用户定义的配置来决定何时运行哪些命令。以下是对`crontab`的详细说明: 1. **启动和检查cron服务**: 使用`service crond status`命令来查看`cron`服务的状态。如果服务未启动,可以使用`service crond start`启动它。`cron`服务是一个后台守护进程,负责周期性地执行系统中的任务。 2. **管理crontab文件**: - `crontab -u <username> -l`:列出指定用户(如`root`)的`crontab`任务。 - `crontab -u <username> -r`:删除指定用户的`crontab`任务。 - `crontab -u <username> -e`:编辑指定用户的`crontab`任务,通常会进入`vi`编辑器。 3. **crontab文件格式**: 每行任务定义由6个字段组成,分别代表分钟、小时、日期、月份、星期几和要执行的命令。例如: ``` * * * * * command_to_be_executed ``` - `*`代表任意值,也可以用具体的数字或范围来限制。 - 示例: - `10 6 * * * date`:每天早上6点10分执行`date`命令。 - `0 23-7/2,8 * * * date`:晚上11点到早上8点之间每两个小时,以及早上8点执行`date`命令。 4. **特殊符号和通配符**: - `/`用于指定间隔,如`*/5`表示每5单位时间执行一次。 - `-`用于指定范围,如`1-10`表示1到10。 - `,`用于指定多个值,如`1,5,10`表示1号、5号和10号。 5. **环境变量问题**: `crontab`任务运行时可能没有用户的完整环境变量,因此在脚本中需要确保所有必要的环境变量被设置。可以考虑在脚本开始部分设置所需的环境变量,如`export PATH=/usr/bin:/bin`。 6. **加载crontab文件**: 如果你有一个单独的文件包含所有`crontab`任务,可以用`crontab filename`命令将其加载到当前用户的`crontab`列表中。 7. **系统级别的cron配置**: 对于系统级别的定时任务,可以编辑`/etc/crontab`文件。例如,`30 5 * * * root init 6`表示每天早上5点30分执行重启命令。 8. **开机启动cron服务**: 若要使`cron`在系统启动时自动运行,可以使用`chkconfig`命令(在Fedora和Redhat中)设置服务启动级别,如`chkconfig --levels 35 crond on`。 9. **生效与重启**: 修改`crontab`配置后,需要重新启动`cron`服务以使更改生效,命令可能是`/etc/init.d/crond restart`。 10. **示例**: - 创建一个名为`crond.txt`的文件,内容为`36 5 * * * reboot`,表示每天早上5点36分重启系统。 - 将文件上传到`/opt`目录,然后运行`crontab /opt/crond.txt`。 - 使用`crontab -l`查看任务是否已添加。 理解并正确使用`crontab`可以帮助自动化许多日常维护任务,提高系统管理效率。但要注意,权限控制和任务执行的准确性,避免对系统造成不必要的影响。