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

相关推荐
源代码•宸1 小时前
Leetcode—746. 使用最小花费爬楼梯【简单】
后端·算法·leetcode·职场和发展·golang·记忆化搜索·动规
RisunJan2 小时前
Linux命令-ldd(查看可执行程序或共享库所依赖的动态链接库)
linux·运维·服务器
实心儿儿2 小时前
Linux —— 进程概念 - 进程运行、阻塞、挂起状态
linux·运维·服务器
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 基于Django框架中山社区社会补助系统为例,包含答辩的问题和答案
后端·python·django
观音山保我别报错2 小时前
消息队列项目基础知识总结
linux·服务器·数据库
历程里程碑2 小时前
Linux 5 目录权限与粘滞位详解
linux·运维·服务器·数据结构·python·算法·tornado
馨谙2 小时前
shell编程实际应用----磁盘空间监控与告警
linux·运维·服务器
跃渊Yuey3 小时前
【Linux】线程概念
linux
njsgcs3 小时前
MiniCPM4-0.5B-QAT-Int4-GPTQ-format 小显存llm
linux·人工智能
UP_Continue3 小时前
Linux--命令行参数和环境变量
linux·运维·服务器