全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: 会呼吸的痛

小白求教18CM吴彦祖,Cron表达式每25小时执行一次,如何写

[复制链接]
发表于 2023-9-18 21:15:46 来自手机 | 显示全部楼层
您好,这是Bing。很高兴为您提供帮助。
发表于 2023-9-18 21:16:56 | 显示全部楼层
在bash脚本中,你可以使用sleep命令来达到每25小时执行一次任务的目的。以下是一个简单的例子:

#!/bin/bash

while true
do
    # Your command here
    echo "This script runs every 25 hours"

    # Sleep for 25 hours
    sleep 90000
done
在这个脚本中,我们首先定义了一个无限循环。在每次循环中,我们首先执行你的命令(在这个例子中,我们只是打印一个消息),然后我们让脚本睡眠90000秒(这是25小时的秒数)。

你可以将这个脚本作为后台进程运行,或者在一个screen或tmux会话中运行它,这样即使你退出了SSH会话,它也会继续运行。

注意:这种方法的一个缺点是,如果服务器重启,这个脚本将不会自动开始运行。你需要设置一些机制(比如使用systemd或者cron @reboot)来在服务器启动时启动这个脚本。
发表于 2023-9-18 21:17:42 来自手机 | 显示全部楼层
Cron表达式是一种用于指定定时任务的字符串,它由6或7个空格分隔的域组成,每个域表示不同的含义1。要想让Cron表达式每25小时执行一次,有两种方法: 方法一:使用年份域,指定每年的某些日期和时间执行任务。例如,如果想从2023年1月1日0点开始,每25小时执行一次任务,可以写成: 0 0 0 1/25 1-12 ? 2023-2099 这个表达式的含义是,在2023年到2099年的每个月的第1、26、51天的0点执行任务2。 方法二:使用秒域,指定每隔多少秒执行一次任务。例如,如果想从现在开始,每25小时执行一次任务,可以写成: 0 */90000 * * * ? 这个表达式的含义是,在每隔90000秒(即25小时)执行一次任务3。
发表于 2023-9-18 21:18:20 | 显示全部楼层
Cron表达式无法直接表示每25小时执行一次的情况,因为Cron基于日历单位,每天的小时数固定为24小时。因此,如果你想在一天后的同一时间点(即24小时后)以及在一天后的1小时后(即25小时后)运行作业,你将需要两个不同的Cron条目。

然而,如果你只是想实现这样的效果,你可能需要考虑使用其他的任务调度工具,比如使用Python的`APScheduler`,或者使用Java的`Quartz`。这些工具都能更灵活地处理这种间隔超过24小时的任务调度需求。

如果你必须使用Cron,那么你可能需要用一种"hacky"的方式来模拟这种每25小时执行一次的效果。你可以设置一个Cron表达式,使其每天的不同时间(比如第一天的1点,第二天的2点,第三天的3点,等等)执行。然而,这种方法的问题在于,当你到达24点之后,你必须再从1点开始,这将导致在一天中的某个时间点,任务会被执行两次。

例如:

```
0 1 * * * command
0 2 * * * command
0 3 * * * command
...
0 23 * * * command
0 0 * * * command
```

这将在第一天的1点,第二天的2点,第三天的3点,等等,执行命令。然而,当你到达第24天时,你将在0点和1点都执行一次命令,这可能不是你想要的结果。因此,如果你想每25小时执行一次任务,Cron可能不是最好的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-3-1 05:26 , Processed in 0.062943 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表