【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解

一个愿意伫立在巨人肩膀上的农民......

Crontab是Linux和类Unix操作系统下的一个任务调度工具,用于周期性地执行指定的任务或命令。Crontab允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。这些任务可以按照分钟、小时、日、月和星期等不同的时间单位进行安排。

一、Crond 服务管理

Ubuntu22.04系统默认是开机开启Crond 服务的,因此此处不必理会,但是如果自己电脑之前设置过关闭该服务,则需要重启,或者更改配置使其开机自启。配置方法是在 /etc/rc.d/rc.local 中添加 service crond start 这一行,其他的管理命令为:

bash 复制代码
# 启动服务
/sbin/service crond start 
# 关闭服务
/sbin/service crond stop 
# 重启服务
/sbin/service crond restart 
# 重新载入配置
/sbin/service crond reload

二、Crontab常用的基本命令

1.查看当前用户的计划任务

bash 复制代码
crontab -l

2.编辑计划任务

bash 复制代码
crontab -e

第一次进入会让你选择编辑器,比如我这里想选nano,那就输入1再敲回车即可。

3.删除计划任务

bash 复制代码
crontab -r

三、设置Crontab执行文件

1.Crontab执行的文件示例

此处以删除Ubuntu日志文件为例,首先创建一个名为"clean_logs.sh"的shell文件,文件内容如下:

bash 复制代码
#!/bin/bash
# 定义要清理的日志文件目录
LOG_DIR="/var/log"

# 查找并删除该目录下所有以.log结尾的文件
sudo find "$LOG_DIR" -type f -iname "*.log" -exec rm -f {} \;

2.Crontab设置

输入下方指令即可进入Crontab配置文件,并对其进行配置。

bash 复制代码
crontab -e

此处我是想每6小时删除一次日志文件,因此我的添加的时间设置和要执行的文件写法如下:

bash 复制代码
* */6 * * * /home/ub/clean_logs.sh

保存并退出文件。在visudo中,可以使用Ctrl+x,然后按Y确认保存,最后按Enter退出。设置完成后电脑将会自动每6个小时删除一下/var/log目录下后缀为".log"的文件。

注意!注意!注意!

待执行的指令中有sudo相关需要给权限和输入密码的操作,需要按照下方链接中的教程对sudo指令进行配置,否则指令无法运行,而报错结果只能在/var/log/syslog日志文件下查询。

【Ubuntu使用技巧】取消无人值守时shell文件中sudo指令运行的密码输入-CSDN博客

四、编辑Crontab说明

1.格式:

m h dom mon dow command
m:分钟 ,取值是从0到59之间的整数。
h:小时 ,取值是从0到23之间的整数。
dom:日期 ,取值是从1到31之间的整数。
mon:月份 ,取值是从1到12之间的整数。
dow:星期几 ,取值是从0到7之间的整数,这里的0或7代表星期日。
command:命令,可以是系统命令,也可以是自己编写的脚本文件。

2.下方的图片有助于理解以上的设置。

3.在以上各个字段中,还可以使用以下特殊字符:

星号(*) :代表所有可能的值,例如mon字段如果是星号 * ,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,) :逗号隔开的值指定时间,例如:dow取"1,2,5",表示只在周一、周二、周五执行

中杠(-) :中杠表示一个整数范围,例如:m取"2-6",表示2-6分钟内要执行

正斜线(/):可以用正斜线指定时间的间隔频率,例如:h取"0-23 /2 "表示每两小时执行一次。

同时正斜线可以和星号一起使用,例如:m取" */10 ",表示 每十分钟执行一次 。

**实例1:**每天7:50开启ssh服务

bash 复制代码
50 7 * * * /sbin/service sshd start

**实例2:**每月的4号与每周一到周三的11点重启smb

bash 复制代码
0 11 4 * mon-wed /etc/init.d/smb restart

欢迎在这里评论、沟通、指正。

创作不易,引用请附原文链接。。。。。。

相关推荐
whoami-46 分钟前
简单使用linux
linux·运维·服务器
fnd_LN12 分钟前
Linux硬盘分区 --- 挂载分区mount、卸载分区umount、永久挂载
linux·运维·服务器
风车带走过往14 分钟前
服务器等保测评日志策略配置
运维·服务器
银河麒麟操作系统14 分钟前
【银河麒麟高级服务器操作系统实例】tcp半链接数溢出分析及处理全过程
linux·运维·服务器·网络·网络协议·tcp/ip
shelby_loo15 分钟前
在Ubuntu下通过Docker部署MySQL服务器
服务器·ubuntu·docker
冷曦_sole20 分钟前
linux-25 文件管理(三)复制、移动文件,cp,mv
linux·运维·服务器
大霞上仙22 分钟前
jenkins入门
运维·jenkins
jjjxxxhhh12343 分钟前
ubuntu支持ssh
ubuntu·ssh
何大春1 小时前
Ubuntu开机The root filesystem on /dev/sdbx requires a manual fsck 问题
linux·运维·服务器·ubuntu
檀越剑指大厂1 小时前
【fnOS使用Docker快速搭建WordPress站点并免费配置公网地址】
运维·docker·容器