首页 > 系统相关 >linux定时任务crontab的使用

linux定时任务crontab的使用

时间:2023-02-28 10:00:38浏览次数:39  
标签:00 crontab cron ls linux 定时 执行


文章目录

  • ​​linux​​
  • ​​crontab参数列表​​
  • ​​crontab -e 和 vim /etc/crontab的区别​​
  • ​​编辑完定时任务重启什么吗​​
  • ​​定时任务是否生效,查看日志​​
  • ​​定时任务表达是常用例子​​
  • ​​mv命令失败了也会删掉原文件吗​​
  • ​​bash脚本中两条命令会影响吗​​
  • ​​一个定时任务错误,会影响其他吗​​
  • ​​mv -f的作用​​
  • ​​cron为什么不显示日志​​
  • ​​用日志跟踪定时任务的执行情况​​
  • ​​其他几个默认的文件​​
  • ​​0/1 和 */1 的区别​​
  • ​​0 0/1 * * *​​
  • ​​0 */1 * * *​​


首先这里区分下,linux中cron和spring的cron是不一样的。

linux

linux cron是不到秒的。

crontab参数列表

-e #编辑定时任务
-l #查看定时任务(其实没用,相当于cat)
-r #删除定时任务
-u #指定其他用户

常用的是​​crontab -e;​​表示编辑定时任务。

crontab -e 和 vim /etc/crontab的区别

这两种都是编辑定时任务文件。
crontab -e 相当于 ​​​cd /var/spool/cron/; vim root;​​​ 编辑的是当前用户的定时任务,一般用这种即可
vim /etc/crontab; 编辑的是系统的定时任务,一般用不到。

编辑完定时任务重启什么吗

不需要,因为保存就会自动刷新定时任务。

定时任务是否生效,查看日志

/var/log/cron 这个是定时任务的日志文件,可以查看

tail -100f /var/log/cron

定时任务表达是常用例子

* * * * *               # 每分钟执行一次
00 02 * * * # 每天2点执行一次
00 02 * * * ls #每天的凌晨2点整执行
00 02 1 * * ls #每月的1日的凌晨2点整执行
00 02 14 2 * ls #每年的2月14日凌晨2点执行
00 02 * * 7 ls #每周天的凌晨2点整执行
00 02 * 6 5 ls #每年的6月周五凌晨2点执行
00 02 14 * 7 ls #每月14日或每周日的凌晨2点都执行
00 02 14 2 7 ls #每年的2月14日或每年2月的周天的凌晨2点执行
*/10 02 * * * ls #每天凌晨2点,每隔10分钟执行一次
* * * * * ls #每分钟都执行
00 00 14 2 * ls #每年2月14日的凌晨执行命令
*/5 * * * * ls #每隔5分钟执行一次
00 02 * 1,5,8 * ls #每年的1月5月8月凌晨2点执行
00 02 1-8 * * ls #每月1号到8号凌晨2点执行
0 21 * * * ls #每天晚上21:00执行
45 4 1,10,22 * * ls #每月的1,10,22号的4:45执行
45 4 1-10 * * ls #每月的1到10号的4:45执行
3,15 8-11 */2 * * ls #每隔两天的上午8点到11点的第3和第15分钟执行
0 23-7/1 * * * ls #晚上11点到早上7点之间,每隔一个小时执行
15 21 * * 1-5 ls #周一到周五每天晚上21:15执行

mv命令失败了也会删掉原文件吗

find /data/logs -mtime +3 -name "*.log" -exec mv -f {} /root/logs \;

实测如果mv到的文件不存在,原文件也会删除掉

bash脚本中两条命令会影响吗

要看什么命令,一般情况下不会。
例如mv命令就不会。

find 命令会影响吗,实测也不会。

find /root -maxdepth 1  -name "ccc.txt" -exec mv -f {} /root/logs/ \;
find /root -maxdepth 1 -name "a.log" -exec mv -f {} /root/logs/ \;

一个定时任务错误,会影响其他吗

find /root -mtime +3 -name "*.log" -exec mv {} /root/logs \;

实测如果2条命令之间没有相互依赖,不会影响的。

mv -f的作用

文件如果重复,默认会询问是否覆盖
-f force 表示不询问,直接覆盖。

cron为什么不显示日志

日志的默认文件是/var/log/cron,

用日志跟踪定时任务的执行情况

例如: 在定时任务执行时,添加date和文件名,并输出到日志。

test.sh内容:

dateStr=`date`; echo $dateStr "test.sh" ;

crontab 中添加:

# 每分钟执行一次,并记录到cron.log
* * * * * root /root/test.sh >> /var/log/cron.log 2>> /var/log/cron.log

其他几个默认的文件

/var/spool/cron/tmp cron的临时文件(不过为什么看不到呢)
/var/spool/mail/root 每个用户都在/var/spool/mail目录下生成用户名的文件夹(不过为什么看不到呢)

0/1 和 */1 的区别

当然是有区别的,例如想要每小时执行一次。

0 0/1 * * *

输出为:
第 1次执行 2022-09-11 00:00:00
第 2次执行 2022-09-12 00:00:00
第 3次执行 2022-09-13 00:00:00
第 4次执行 2022-09-14 00:00:00
效果为每天的0点执行一次。

0 */1 * * *

输出为:

执行序号 执行时间
第 1次执行 2022-09-10 18:00:00
第 2次执行 2022-09-10 19:00:00
第 3次执行 2022-09-10 20:00:00
第 4次执行 2022-09-10 21:00:00

很明显,这是想要的结果。


标签:00,crontab,cron,ls,linux,定时,执行
From: https://blog.51cto.com/u_7341513/6090183

相关文章

  • 高并发linux内核参数调优
    高并发linux内核参数调优内核参数说明#【net】########################cat/proc/sys/net/ipv4/tcp_syncookies#默认值:1#作用:是否打开SYNCookie功能,该功能可以防......
  • linux重置密码和单用户模式
    CentOS7.9CentOS7系统root密码丢失找回方法(史上最好)1.重新启动或开启CentOS7系统,在选择进入系统Grub菜单界面如下图1-1,根据提示按“e”小写字母进入编辑界面,如下图1-2......
  • linux驱动移植-GPIO子系统
    ----------------------------------------------------------------------------------------------------------------------------内核版本:linux5.2.8根文件系统:busybo......
  • Linux基本命令--ping的语法
    1、命令介绍ping命令用来测试主机之间网络的连通性,通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接.用途:发送一个回送信号请求给网络......
  • Linux - firewalld 使用方法
    firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。1、安装firewallyuminstallfirewalld......
  • 从Linux Bridge引发的网桥、交换机与路由器区别探究
    背景最近接触docker的网络配置方式,发现其默认会创建一个docker0的LinuxBridge,宿主机上运行的容器可以通过连接该birdge实现与外网的通信,根据bridge这个命名很自然的认为......
  • linux 内存回收笔记
    场景某个项目,每天大概某点会报readtimeout问题,该项目使用了缓存。估计和内存回收会有一定关系,内存回收引起的缓存失效?内存回收机制如楼上所说,在linux系统的缺省配置中,内存......
  • ioctl函数详解(Linux内核 )
    https://cloud.tencent.com/developer/article/2148753#:~:text=ioctl是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些......
  • Linux 中iostat 命令详解
    iostat命令详解iostat主要是统计磁盘活动情况。iostat有以下缺陷:iostat的输出结果大多数是一段时间内的平均值,因此难以反映峰值情况iostat仅能对系统整体情况进行分析......
  • Linux操作系统下查询NVMe盘符、Slot ID和Bus ID的对应关系
    在拆卸NVMePCIe固态硬盘时,需要查询Linux操作系统下NVMe盘符、SlotID和BusID的对应关系。操作步骤打开操作系统命令终端。依次执行cd/sys/bus/pci/slots和ll命令,找到......