#!/bin/bash
# ============================================================
# gk_run.sh — 每天 12:00 的【自动】发文任务(由 cron 调用)
#
# 与手动任务 gk_manual.sh 互不干涉:
# - 记账分开:自动发 postmeta._gk_auto_src=auto,
# 只与 auto 记录比较,手动发的不算它的账
# - 锁分开 :自动用 /tmp/gk_auto.lock,手动用 /tmp/gk_manual.lock
#
# 每站篇数见 config.php 的 ai.auto_count(当前 2 篇)
# 用法: gk_run.sh [all|main|film|visual] [--count N] [--force]
# ============================================================
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PHP=/www/server/php/74/bin/php
DIR=/root/gk_auto
LOCK=/tmp/gk_auto.lock
LOG=/www/wwwlogs/gk_auto.log
mkdir -p "$DIR"
{
echo "=================================================="
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 自动发文启动 参数: $*"
} >> "$LOG"
# 只与「自动任务」互斥;手动任务用的是另一把锁,可并行
exec 9>"$LOCK"
if ! flock -n 9; then
echo "[$(date '+%H:%M:%S')] 上一次自动任务仍在运行,本次跳过" >> "$LOG"
exit 0
fi
"$PHP" "$DIR/gk_auto.php" all "$@" >> "$LOG" 2>&1
RC=$?
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 结束,退出码 $RC" >> "$LOG"
exit $RC