1.创建 update_docker_images.sh 文件
使用文本编辑器(如 nano、vi 或其他工具)创建并编辑文件。
nano /etc/pterodactyl/update_docker_images.sh
2.复制并粘贴脚本内容
将以下内容粘贴到编辑器中:
#!/bin/bash # 远程镜像列表文件的 URL IMAGE_LIST_URL="https://www.qaqae.cn/images.txt" # 下载镜像列表 curl -s $IMAGE_LIST_URL -o /tmp/images.txt # 检查是否成功下载文件 if [ ! -f /tmp/images.txt ]; then echo "未能下载镜像列表文件!" exit 1 fi # 读取文件并拉取镜像 while IFS= read -r IMAGE; do if [ ! -z "$IMAGE" ]; then echo "正在拉取镜像: $IMAGE" docker pull $IMAGE fi done < /tmp/images.txt echo "镜像拉取完成!"
3.保存并退出编辑器
在 nano 中,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出。
4.赋予脚本执行权限
运行以下命令赋予脚本执行权限:
chmod +x /etc/pterodactyl/update_docker_images.sh
5.测试脚本
执行脚本以确保其工作正常:
bash /etc/pterodactyl/update_docker_images.sh
编辑 cron 来定期运行此脚本:
crontab -e
例如,每天早上 9 点拉取镜像列表并更新镜像:
0 9 * * * /etc/pterodactyl/update_docker_images.sh >> /etc/pterodactyl/logfile.log 2>&1
确认 crontab 是否设置成功
crontab -l
确认是否有类似以下的任务:
0 9 * * * /etc/pterodactyl/update_docker_images.sh >> /etc/pterodactyl/logfile.log 2>&1
强制刷新 crontab 配置
如果怀疑配置未生效,可以强制刷新 crontab 配置:
service cron restart
或在部分系统中使用:
systemctl restart cron
检查 cron 的运行日志
如果定时任务没有按预期运行,可以查看 cron 的日志,确保任务被正确执行:
在 Ubuntu/Debian 系统:
grep CRON /var/log/syslog
在 CentOS/RHEL 系统:
grep CRON /var/log/cron
脚本权限问题:确保脚本文件具有执行权限。
chmod +x /etc/pterodactyl/update_docker_images.sh
环境变量问题:cron 的环境变量可能和手动执行不同。确保在脚本开头指定路径,例如:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
日志输出问题:确保 >> /etc/pterodactyl/logfile.log 2>&1 能正常记录脚本输出。