Crontab实现mx-space后端自动更新
- 保存下列代码为文件
mx-auto-update.sh
,并赋予权限chmod +x mx-auto-update.sh
#!/bin/bash
# mx-auto-update.sh
# 设置代理(可选)
# export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
# 设置工作目录(修改为自己的core目录)
cd ~/mx-space-new/core/ || exit
# 拉取最新的镜像
docker-compose pull
# 检查是否有更新
if docker-compose pull app | grep -q "up to date"; then
echo "All images are up to date."
echo "Current Version: $(docker inspect innei/mx-server:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
exit 0
fi
echo "Detected mx-server update"
# 停止并删除旧的容器,然后启动新的容器
docker-compose down
docker-compose up -d
# 打印更新时间和版本
echo "Update time: $(date)"
echo "New Version: $(docker inspect innei/mx-server:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
# 清理旧的镜像
docker image prune -f
echo "Update completed and old images removed."
- 运行
crontab -e
(如果是第一次打开,选择自己熟悉的编辑器就行),加上下面代码
# 自行修改 mx-auto-update.sh 文件路径和 log 路径
0 0 * * * /path/to/mx-auto-update.sh >> /path/to/mx-auto-update.sh.log 2>&1
每天0点自动执行更新(也可以自行修改为其他设置)
- 检查
crontab -l