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
相关推荐
readhere6 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
打工仔折腾 AI7 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz7 小时前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节
‎ദ്ദിᵔ.˛.ᵔ₎7 小时前
关于Linux 线程局部存储的认识
linux·运维
GlobalInfo7 小时前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
数字新视界9 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
隔窗听雨眠9 小时前
KingbaseES平替全链路实践:从迁移评估到可持续运维
运维
skywalk81639 小时前
登到192.168.1.5那台机器,看看今天白天,大约从早晨到晚上,都卡住了。看看因为什么卡住,为什么卡住而没有杀死那个导致卡死的进程,为什么
运维·系统·freebsd
运维行者_9 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
小小de风呀9 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习