LINUX定时执行脚本

bash 复制代码
vim 260825.sh
bash 复制代码
#!/bin/bash
# 计算到目标时间的秒数并 sleep
target_time="2026-08-25 00:00:00"
current_time=$(date +%s)
target_seconds=$(date -d "$target_time" +%s)
sleep_time=$((target_seconds - current_time))

if [ $sleep_time -gt 0 ]; then
    sleep $sleep_time
    cd /.../nginx/ && docker-compose down
    cd /.../app/ && docker-compose down
fi

# 上面的版本已实践能用,下面的没实践过

#!/bin/bash

# 计算到目标时间的秒数并 sleep
target_time="2026-08-25 00:00:00"
current_time=$(date +%s)
target_seconds=$(date -d "$target_time" +%s)
sleep_time=$((target_seconds - current_time))

if [ $sleep_time -gt 0 ]; then
    echo "当前时间: $(date)"
    echo "目标时间: $target_time"
    echo "等待 $((sleep_time / 3600)) 小时 $(( (sleep_time % 3600) / 60 )) 分钟后执行..."
    
    sleep $sleep_time
    
    echo "开始停止服务..."
    
    # 停止 nginx 服务
    echo "  停止 nginx..."
    cd /.../nginx/ && docker-compose down
    
    # 停止 app 服务
    echo "  停止 app..."
    cd /.../app/ && docker-compose down
    
    echo "所有服务已停止于 $(date)"
else
    echo "目标时间已过,不执行任何操作"
    exit 1
fi
bash 复制代码
chmod +x 260825.sh

注意cd /.../nginx/ && docker-compose down这里的/.../nginx/需要有docker-compose.yml

bash 复制代码
nohup ./260825.sh > 260825.log 2>&1 &

后续系统就会自动等待到指定时间,执行docker-compose down,比如上面的脚本我是260824启动的,到了260825000000就会执行并输出日志(可通过日志的创建时间与修改时间、内容判断执行时间)

bash 复制代码
cat 260824.log

可用命令查看是否启动成功

bash 复制代码
ps aux | grep 260825.sh
ps aux | grep sleep
ps aux | grep sleep | grep -v grep
相关推荐
Ruiery6 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包6 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
MicrosoftCloud6 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
wjkjpcba7 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭7 小时前
达梦事物特性及MVCC
linux·运维·数据库
91刘仁德8 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
亚川楼宇自控系统数据中心厂家9 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
羔羊++9 小时前
18_实验十七_其他命令与自定义启动变量
linux
zmsup10 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优
DYWorker00111 小时前
Linux驱动:RK3568 GMAC + YT8531C 千兆以太网全流程解剖
linux