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 中了。

相关推荐
XY.散人13 分钟前
初识Linux · 文件(1)
linux·运维·服务器
bug菌27 分钟前
Java GUI编程进阶:多线程与并发处理的实战指南
java·后端·java ee
叶北辰CHINA1 小时前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡
不惑_2 小时前
在 Ubuntu 安装 Python3.7(没有弯路)
linux·运维·ubuntu
夜月行者2 小时前
如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
java·后端·ssm
Yvemil72 小时前
RabbitMQ 入门到精通指南
开发语言·后端·ruby
sdg_advance2 小时前
Spring Cloud之OpenFeign的具体实践
后端·spring cloud·openfeign
猿java3 小时前
使用 Kafka面临的挑战
java·后端·kafka
碳苯3 小时前
【rCore OS 开源操作系统】Rust 枚举与模式匹配
开发语言·人工智能·后端·rust·操作系统·os
玉树临风江流儿3 小时前
Linux驱动开发(速记版)--设备模型
linux·驱动开发