linux定时执行crontab.pdf
Linux中的`crontab`是系统管理员用于设置周期性被执行任务的一个工具,它允许用户根据预定义的时间间隔安排任务的自动执行。`crontab`是`cron`守护进程的一部分,`cron`负责定期(按分钟、小时、日期等)执行任务。 1. **启动和检查cron服务** 使用`service crond status`来检查`cron`服务是否正在运行。如果未启动,可以使用`service crond start`来启动服务。为了确保`cron`在系统启动时自动启动,可以在`/etc/rc.d/rc.local`中添加`service crond start`命令。 2. **管理用户crontab** `crontab`命令有多个选项: - `-l`:列出用户的crontab任务。 - `-r`:删除用户的crontab任务。 - `-e`:编辑用户的crontab任务。 3. **crontab文件格式** 每个crontab条目由六个字段组成,分别是分钟、小时、日期、月份、星期几和要执行的命令。每个字段允许指定特定的值或范围,也可以使用特殊符号如`*`(所有)、`-`(范围)和`/`(间隔)。例如: ``` */30 * * * * netstat > /tmp/net.log ``` 这行表示每30分钟执行一次`netstat`命令并将结果重定向到`net.log`文件。 4. **crontab任务的特殊字符** - `*`:代表任何可能的值。 - `/n`:表示每n个单位时间执行一次。 - `-m-n`:表示从m到n的范围。 - `a,b,c`:表示a、b或c其中之一。 5. **时间间隔示例** - `10 6 * * * command`:每天早上6:10执行command。 - `0 */2 * * * command`:每两小时执行一次command(但Solaris 5.8不支持此写法)。 - `0 11 4 * mon-wed command`:每月4号以及周一到周三的11点执行command。 6. **环境变量** 使用crontab时,需要注意脚本中的环境变量可能与交互式登录环境不同。为了避免问题,最好在脚本中直接设置所需环境变量,例如`export PATH=/usr/local/bin:/usr/bin:/bin`。 7. **创建和应用crontab文件** 可以创建一个包含crontab条目的文本文件,然后使用`crontab /path/to/file`命令将其应用。例如,`crontab /opt/crond.txt`。 8. **重启cron服务** 修改了crontab文件或配置后,记得重启cron服务以使更改生效,命令通常是`/etc/init.d/crond restart`或`systemctl restart crond.service`,具体取决于Linux发行版。 9. **开机启动cron服务** 若要让cron在系统启动时自动运行,可以使用`chkconfig --levels 35 crond on`命令(Fedora和Redhat系统)。 10. **编辑/etc/crontab** 除了用户级别的crontab,还可以编辑全局的`/etc/crontab`文件,用于设置系统级别的定时任务。 通过以上步骤,可以有效地管理和配置Linux系统的定时任务,实现自动化运维和监控。