失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > crontab 每周五_/etc/crontab 怎么设置每月最后一个周六任务

crontab 每周五_/etc/crontab 怎么设置每月最后一个周六任务

时间:2019-03-14 09:57:34

相关推荐

crontab 每周五_/etc/crontab 怎么设置每月最后一个周六任务

你的位置:

问答吧

-> Linux

-> 问题详情

/etc/crontab 怎么设置每月最后一个周六任务

/etc/crontab 怎么设置每月最后一个周五任务?

我需要在每月定时做备份,但是备份时间超过24小时,如果在上班时间做会不能使用系统。

但是crontan每月定时只能是每月的几号做?难道不能像windows下的做到每月最后一个周五晚上做吗

作者: 刘五十三

发布时间: -08-04

給定周中的特定天

另一個常見的需求是,僅在每月中的特定星期數運行。例如,可能希望在每個月的第一個星期一或星期五運行一個報告。為了完成此任務,可以使用與上面類似的過程。對於給定周中的任何天,它一定屬於以下日期範圍之一:

第 1 周:第 1 天到第 7 天

第 2 周:第 8 天到第 14 天

第 3 周:第 15 天到第 21 天

第 4 周:第 22 天到 28 天

要確定當前日期是否在給定範圍內,例如是否在第四周範圍內,可以使用與以下所示類似的測試:

[ `date +%e` -gt 21 -a `date +%e` -lt 29 ]

%e 用於返回當天的號數,如果數字小於 10 則用一個空格(而不是零)作為其前綴,以確保對數字(而非字符串)進行比較。

現在可以將此與 crontab 定義一起使用,以嘗試每週星期五運行命令:

59 23 * * 5 [ `date +%e` -gt 21 -a `date +%e` -lt 29 ]

&& do-something

命令將在每週星期五運行,但由於測試將僅在每個月的第四周返回 True,命令將實際在第三個星期五執行。

作者: gamester88

发布时间: -08-04

嫌麻烦,30天执行一次得了。

作者: vermouth

发布时间: -08-04

QUOTE:

原帖由 劉五十三 於 -8-4 10:14 發表

/etc/crontab 怎麼設置每月最後一個週五任務?

我需要在每月定時做備份,但是備份時間超過24小時,如果在上班時間做會不能使用系統。

但是crontan每月定時只能是每月的幾號做?難道不能像windows下的做到每月 ...

多動動腦吧,若你需要格式太複雜,windows 還辦不大呢。

[Copy to clipboard] [ - ]CODE:

0 0 * * 6 [ $(date -d "+7 days" +%d) -gt $(date +%d ) ] && /path/your_program

[Copy to clipboard] [ - ]CODE:

$(date -d "+7 days" +%d)

這是表示下週的日期,比方 10/15 的一星期後是 10/22,那內容就是 22

[Copy to clipboard] [ - ]CODE:

$(date +%d )

今天日期,今天是 10/15,那內容就是 15

作者: kenduest

发布时间: -08-04

Su Mo Tu We Th Fr Sa

123456

789 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31

26

Su Mo Tu We Th Fr Sa

12345

6789 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30 31

25

Su Mo Tu We Th Fr Sa

1234

56789 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29 30 31

31

Su Mo Tu We Th Fr Sa

123

456789 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

30

Su Mo Tu We Th Fr Sa

12

3456789

10 11 12 13 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

31

29

Su Mo Tu We Th Fr Sa

1

2345678

9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30 31

28

Su Mo Tu We Th Fr Sa

1234567

89 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

27

lz不要误解哦,看到了我上面列出的内容了嘛,是1号出现在周一至周五的可能性,那一个中最后一周的周五的日期应该是>=25的

crontab 中

* * * * 5 shell.script

在shell中先判断当前日期是不是>=25号

具体写法,我就不列那!思路已经给你拿

作者: jerryjzm

发布时间: -08-04

QUOTE:

原帖由 kenduest 于 -8-4 16:16 发表

多動動腦吧,若你需要格式太複雜,windows 還辦不大呢。

0 0 * * 6 [ $(date -d "+7 days" +%d) -gt $(date +%d ) ] && /path/your_program

$(date -d "+7 days" +%d)

這是表示下週的日期,比 ...

相当不错

作者: jerryjzm

发布时间: -08-05

0 0 * * 5 [ $(date -d "+7 days" +%d) -lt $(date +%d ) ] && /path/your_program?

作者: phoenixson

发布时间: -08-05

我也想过每周五运行脚本,然后脚本检测是不是最后一个周五,是的话就运行备份程序。看来crontab实现不了。多谢上面的兄弟帮忙。

作者: 刘五十三

发布时间: -08-06

可以在自己的脚本里去实现,这样虽然有一引起麻烦但可以保证最后一个周六运行

作者: ttblmtang123

发布时间: -08-06

又学到东西了.

注册BVI公司

作者: 11hy

发布时间: -08-07

如果觉得《crontab 每周五_/etc/crontab 怎么设置每月最后一个周六任务》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。