一、每10分钟定时运行shell脚本
*/10 * * * * /path/to/myscript.sh >> /path/to/logfile.log 2>&1
二、在每小时的固定0,20,40,59分钟运行shell脚本
0,20,40,59 * * * * /path/to/myscript.sh >> /path/to/logfile.log 2>&1
在Linux系统中,你可以使用cron
来定时运行shell脚本。cron
是一个Linux下的定时任务守护进程,它可以根据设定的时间执行特定的任务。以下是设置定时任务的基本步骤:
-
创建Shell脚本: 首先,你需要有一个shell脚本文件,例如
myscript.sh
。确保这个脚本有执行权限,可以通过以下命令给予执行权限:chmod +x myscript.sh
-
编辑Cron表: 使用
crontab
命令编辑当前用户的cron表:crontab -e
这将打开一个编辑器,你可以在里面添加你的定时任务。
-
添加Cron任务: 在打开的编辑器中,你可以添加一行来定义你的定时任务。Cron的语法如下:
* * * * * command-to-be-executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0 or 7) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- minute (0 - 59)
例如,如果你想每天凌晨1点运行
myscript.sh
,你可以添加以下行:0 1 * * * /path/to/myscript.sh
确保替换
/path/to/myscript.sh
为你的脚本实际路径。 -
保存并退出: 保存你的更改并退出编辑器。Cron将自动加载新的cron表,并在指定的时间执行任务。
-
检查Cron作业: 你可以使用以下命令来查看当前用户的cron作业列表:
crontab -l
-
日志和调试: 如果需要调试cron作业,你可以将脚本的输出重定向到一个日志文件中,例如:
0 1 * * * /path/to/myscript.sh >> /path/to/logfile.log 2>&1
这样,任何标准输出和错误输出都会被写入到
logfile.log
。
确保你的脚本在没有交互的情况下可以正常运行,因为cron不会提供交互式shell环境。此外,如果你的脚本依赖于特定的环境变量,你可能需要在脚本中明确设置这些变量,因为cron不会加载用户的完整shell环境。