openclaw-home-pc/workspace/scripts/manage-tasks.sh
2026-03-21 15:31:06 +08:00

84 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# 定时任务管理脚本
# 用法:./manage-tasks.sh [status|start|stop|run|edit]
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WEATHER_SCRIPT="$SCRIPT_DIR/weather-daily.sh"
SERVICE_FILE="$HOME/.config/systemd/user/daily-weather.service"
TIMER_FILE="$HOME/.config/systemd/user/daily-weather.timer"
show_status() {
echo "=== 定时任务状态 ==="
systemctl --user list-timers --all | grep -E "weather|NEXT|LEFT"
echo ""
echo "=== 服务状态 ==="
systemctl --user status daily-weather.service 2>/dev/null | head -10
echo ""
echo "=== 脚本路径 ==="
echo "天气脚本:$WEATHER_SCRIPT"
echo "Service: $SERVICE_FILE"
echo "Timer: $TIMER_FILE"
}
run_now() {
echo "=== 手动运行天气预报 ==="
bash "$WEATHER_SCRIPT"
}
edit_script() {
echo "编辑天气脚本:$WEATHER_SCRIPT"
nano "$WEATHER_SCRIPT"
}
edit_service() {
echo "编辑 Service 配置:$SERVICE_FILE"
nano "$SERVICE_FILE"
}
reload() {
echo "重新加载 systemd 配置..."
systemctl --user daemon-reload
systemctl --user restart daily-weather.timer
echo "✓ 配置已重载"
}
case "$1" in
status)
show_status
;;
start)
systemctl --user enable daily-weather.timer
systemctl --user start daily-weather.timer
echo "✓ 定时任务已启动"
;;
stop)
systemctl --user stop daily-weather.timer
systemctl --user disable daily-weather.timer
echo "✓ 定时任务已停止"
;;
run|test)
run_now
;;
edit)
edit_script
;;
edit-service)
edit_service
;;
reload)
reload
;;
*)
echo "用法:$0 {status|start|stop|run|edit|edit-service|reload}"
echo ""
echo "命令说明:"
echo " status - 查看定时任务状态"
echo " start - 启动定时任务"
echo " stop - 停止定时任务"
echo " run/test - 手动运行一次(测试用)"
echo " edit - 编辑天气脚本(修改 Webhook 等)"
echo " edit-service - 编辑 Service 配置(修改执行时间等)"
echo " reload - 重新加载配置"
;;
esac