Linux Crontab

前言

在 Linux 中 crontab 默认都是安装好的,如果遇到了 crontab 没安装的情况先安装 crontab

php 复制代码
$ sudo apt update
$ sudo apt install cron

安装完成后检查 service 的路径

shell 复制代码
$ which service

启动 crontab 并查看是否正常运行

shell 复制代码
$ sudo /usr/sbin/service cron start
start: Job is already running: cron
$ ps -ef | grep cron

其他相关指令

shell 复制代码
$ sudo /usr/sbin/service cron status #查询服务状态
$ sudo /usr/sbin/service cron reload #重新配置
$ sudo /usr/sbin/service cron restart #服务重启

建立 crontab 并选择默认编辑器

php 复制代码
$ crontab -e

Crontab 使用

bash 复制代码
# Example of job definition:
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

# 每天早上8点30分执行
30 8 * * * /home/test/script.sh --your --parameter

# 每周日下午6点30分执行
30 18 * * 0 yourcommand

# 每年12月24日早上8点00分执行
0 8 12 24 * yourcommand

# 每月1日、15日早上12点30分各执行一次
30 12 1,15 * * yourcommand

# 每隔5分钟执行一次
*/5 * * * * yourcommand

# 从早上8点到下午4点,遇到整点就执行

Crontab log输出

网上文章都说 crontablog 会在 /var/log/cron 下,但我不管怎么找都找不到,所以我干脆自己将 log 输出至指定位置,这里我设了一个测试用的 cron 每五分钟 run 一次 echo 并将结果输出至 /home/test/cronlog.log

bash 复制代码
*/5 * * * * echo 12345 >> /home/test/cronlog.log 2>&1

I/O 重定向

一般的 Linux 指令在执行时,会有三个输入与输出的数据流,分别为:

  1. 标准输入(standard input,代码为 0 ):程序执行所需要的输入数据。

  2. 标准输出(standard output,代码为 1 ):程序正常执行所产生的输出数据。

  3. 标准错误输出(standard error output,代码为 2 ):程序出错时通知使用者用的信息,或是体现程序状态用的信息。

简单举例

shell 复制代码
$ ls > output.txt

代表将 ls 的结果输出至 output.txt ,而 > 代表如果没有文件则新增,有文件就直接覆盖掉,如不想直接覆盖要接续加入可改用 >>

但这样只会有标准输出,若在执行中遇到错误的话 output.txt 内并不会显示,因为我们并没有将错误输出导到文件。

lua 复制代码
$ ls >> output.txt 2 >> error.txt

使用以上方法可以将标准输出导至 output.txt 而错误信息导至 error.txt 。那若想将标准输出和错误信息都导至同一个文件呢?

shell 复制代码
$ ls >> output.txt 2>&1

2>&1 就是把标准错误输出 2 导入标准输出 1 ,然后再靠著 >> 把所有的数据全部导入 output.txt,这样所有的输出信息就会一起存入 outpupt.txt 中了。

相关推荐
上海合宙LuatOS31 分钟前
LuatOS核心库API——【i2c】I2C 操作
linux·运维·单片机·嵌入式硬件·物联网·计算机外设·硬件工程
毅炼1 小时前
Java 集合常见问题总结(3)
java·开发语言·后端
一文解千机2 小时前
wine 优化配置及显卡加速,完美运行Electron 编译的程序(新榜小豆芽、作家助手、小V猫等)
linux·ubuntu·electron·wine·wine优化配置·wine显卡加速·wine大型游戏
2401_858286113 小时前
OS53.【Linux】System V 共享内存(2)
linux·运维·服务器·共享内存
笨蛋不要掉眼泪4 小时前
Nacos配置中心详解:核心用法、动态刷新与经典面试题解析
java·数据库·后端
REDcker4 小时前
DNS技术详解
服务器·后端·计算机网络·互联网·dns·服务端
javaTodo5 小时前
Claude Code AI 子代理(Subagents):何时用、怎么用完全指南
后端
想用offer打牌5 小时前
一站式了解Agent Skills
人工智能·后端·ai编程
UrbanJazzerati6 小时前
一文介绍PostgreSQL与基本架构
后端·面试
大尚来也6 小时前
MySQL 8.0 性能优化全攻略:索引、查询与配置调优的实战指南
后端