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输出

网上文章都说 crontab 的 log 会在 /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 中了。

相关推荐
狼爷2 分钟前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc
郑州光合科技余经理5 分钟前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源20 分钟前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源34 分钟前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆66642 分钟前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
羔羊++1 小时前
18_实验十七_其他命令与自定义启动变量
linux
周杰伦fans1 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
小蒜学长2 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
IT_陈寒2 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
打工仔折腾 AI3 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战