linux脚本每月1日跑一次,linux-在Shell脚本中将Cron Job设置为每月的第一个工作日...

我是脚本语言的新手,谁能解释一下如何在第一工作日设置cron作业?

解决方法:

您可以使用以下内容,

@monthly

每个月的第一天早晨每月运行一次.

0 0 1 * * /home/scripts/your_script_file.sh

第三编辑:

这将在每月的第一个工作日上午10点(早上)执行您的工作:

# First weekday of the month

# Monday - Friday

00 10 1-3 * * [ "$(date '+\%a')" == "Mon" ] && /home/scripts/your_script_file.sh

00 10 1 * * [ "$(date '+\%a')" == "Tue" ] && /home/scripts/your_script_file.sh

00 10 1 * * [ "$(date '+\%a')" == "Wed" ] && /home/scripts/your_script_file.sh

00 10 1 * * [ "$(date '+\%a')" == "Thu" ] && /home/scripts/your_script_file.sh

00 10 1 * * [ "$(date '+\%a')" == "Fri" ] && /home/scripts/your_script_file.sh

标签:shell,unix,linux

来源: https://codeday.me/bug/20191121/2048994.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要让crontab每个的最后一执行,可以使用以下命令: ``` 0 0 28-31 * * [ $(date -d "+1 day" +%d) = "01" ] && <command> ``` 这个命令将在每个的28号到31号的午夜12执行。然后,它会检查当前期的下一是否为1号。如果是1号,那么命令就会被执行。这样,就可以确保命令只在每个的最后一执行。 需要将`<command>`替换成你要执行的实际命令。 ### 回答2: 使用crontab来实现每月最后一执行任务需要结合shell命令和crontab设置。原理是通过判断当前期是否为当的最后一执行相应的任务。 首先,我们需要先编写一个shell脚本执行具体的任务,例如任务脚本为`task.sh`。假设要每月最后一执行的命令是`command_to_execute`,任务脚本的内容如下: ```shell #!/bin/bash if [ $(date -d tomorrow +%d) = "01" ]; then command_to_execute fi ``` 在脚本中,我们使用`date -d tomorrow +%d`命令来获取明期,并将期以"%d"的格式输出。然后通过与"01"比较,判断是否为当的最后一。如果是最后一,则执行`command_to_execute`。 接下来,我们使用crontab设置任务的执行时间。执行`crontab -e`来编辑当前用户的crontab文件。在文件末尾添加一行如下内容: ``` 59 23 28-31 * * /path/to/task.sh ``` 解释一下这行内容:`59 23 28-31 * *`表示每月的28号至31号的2359分执行命令。而`/path/to/task.sh`则是任务脚本的绝对路径。 最后,保存并退出crontab文件即可。这样,每次当的最后一到来时,crontab会自动调用shell脚本执行具体的任务。 需要注意的是,由于不同份的数不同,有些份可能没有29、30、31这几,但crontab会忽略这个错误,不会影响脚本执行。 ### 回答3: crontab是一个在Unix和类Unix系统中用于执行定时任务的命令。它根据用户设定的时间表自动执行指定的命令或脚本。 要使crontab命令每月最后一执行,我们可以使用一些特定的crontab语法来实现。 首先,我们需了解crontab的时间设定格式。crontab时间格式由五个字段组成,分别表示分钟、小时、期、份和星期几。每个字段可以有多个取值,并可以使用通配符来代表所有取值范围。 要使crontab命令每月最后一执行,我们可以在期字段使用取值范围限定符"L",表示最后一。并在份字段使用"*"通配符,表示每个。 具体的crontab命令如下所示: 59 23 L * * command 这个命令表示在每个的最后一的2359分执行指定的命令。 其中,第一个字段"59"表示分钟,第二个字段"23"表示小时,期字段使用取值范围限定符"L"表示最后一份字段使用通配符"*"表示每个,最后一个星期字段也使用通配符"*"表示任何星期。 通过以上的crontab命令,我们可以保证命令或脚本每个的最后一自动执行

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值