add cron task

This commit is contained in:
2025-11-21 10:24:31 +00:00
parent 45fcf2f38a
commit a74680c0f0
3 changed files with 47 additions and 35 deletions
+4 -32
View File
@@ -1,38 +1,10 @@
#!/bin/sh
GEODB_DIR="/config/geodb"
GEODB_FILE="$GEODB_DIR/GeoLite2-Country.mmdb"
GEODB_URL="https://git.io/GeoLite2-Country.mmdb"
TWO_WEEKS_SECONDS=1209600 # 14 * 24 * 60 * 60
# 首次执行 GeoLite2 数据库更新脚本,确保 Caddy 启动前文件可用
/usr/local/bin/update_geodb.sh
mkdir -p "$GEODB_DIR"
if [ ! -f "$GEODB_FILE" ]; then
echo "GeoLite2-Country.mmdb 不存在,正在下载..."
curl -sSL "$GEODB_URL" -o "$GEODB_FILE"
if [ $? -eq 0 ]; then
echo "GeoLite2-Country.mmdb 下载成功."
else
echo "GeoLite2-Country.mmdb 下载失败."
fi
else
# 检查文件修改时间
FILE_MOD_TIME=$(stat -c %Y "$GEODB_FILE")
CURRENT_TIME=$(date +%s)
AGE=$((CURRENT_TIME - FILE_MOD_TIME))
if [ "$AGE" -ge "$TWO_WEEKS_SECONDS" ]; then
echo "GeoLite2-Country.mmdb 已超过两周未更新,正在下载新版本..."
curl -sSL "$GEODB_URL" -o "$GEODB_FILE"
if [ $? -eq 0 ]; then
echo "GeoLite2-Country.mmdb 下载成功."
else
echo "GeoLite2-Country.mmdb 下载失败."
fi
else
echo "GeoLite2-Country.mmdb 在两周内已更新,跳过下载."
fi
fi
# 启动 cron 服务
crond -b -L /var/log/cron.log
# 执行原始的 Caddy ENTRYPOINT
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile