由于某些需求(例如定时重启某个任务,定时推送更新博客,定时备份文件等),需要定时执行某些任务。
cron
cron 是 Linux 系统中用于管理和执行周期性任务的工具。
任务编辑规则
(1)打开 cron 任务编辑器
crontab -e
如果是第一次使用 crontab,系统可能会让你选择一个文本编辑器,通常可以选择 nano 简单一些。
(2)配置 cron 服务
表达式如下:
* * * * * command
分 时 天 月 周 命令
- 分:0-59
- 时:0-23
- 天:1-31
- 月:1-12
- 周:1-6 周一至周六,0 周日
此外:
*:表示任意值,比如在小时部分填写*代表任意小时(每小时),:允许在一个部分中填写多个值,比如在分钟部分填写1,3表示一分钟或三分钟\:一般配合 * 使用,代表每隔多长时间,比如在小时部分填写*/2代表每隔两分钟。所以*/1和*没有区别
例如:
1. \* * * * * # 每隔一分钟执行一次任务
2. 0 * * * * # 每小时的0点执行一次任务,比如6:00,10:00
3. 6,10 * 2 * * # 每个月2号,每小时的6分和10分执行一次任务
4. \*/3,\*/5 * * * * # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06
配置一个定时任务
(1)创建脚本
例如我们需要每天在命令行执行 hexo g, hexo d 的命令。
首先创建脚本:gedit hexo.sh,写入如下内容:
#!/bin/bash
HEXO_DIR="/path/hexo_blog_dir"
if [ -d "$HEXO_DIR" ]; then
cd "$HEXO_DIR" || exit
hexo g && hexo d
echo "已在 $HEXO_DIR 执行 hexo g 和 hexo d"
else
echo "未找到 $HEXO_DIR 目录"
fi
(2)赋予权限
sudo chmod +x hexo.sh
可以验证一下 hexo.sh 是否能够成功执行。
(3)添加定时任务
打开 crontab -e,添加一行内 W容:
* 0 * * * /home/mahaofei/Software/everyweek.sh
(4)重启 cron 服务
sudo service cron restart
这样就会每天 0 点定时执行 hexo.sh。

评论