我有一个Python脚本,或者说是一个Python服务,需要每天下午3点运行。基本上,文件的结尾是一个while True : time.sleep(1)。
我绝对需要在终端窗口中执行此脚本(因为我需要日志记录)。如果解决方案可以在tmux窗口中运行,则更好。
我尝试过cron jobs,但不知道如何将其放入终端。
我绝对需要在终端窗口中执行此脚本(因为我需要日志记录)。如果解决方案可以在tmux窗口中运行,则更好。
我尝试过cron jobs,但不知道如何将其放入终端。
#!/bin/bash
tmux new-session -d -s example
tmux split-window -h
tmux select-pane -t 0
tmux send-keys './ex.sh' 'C-m'
tmux select-pane -t 1
tmux send-keys './ex1.sh'
tmux new-window -n 'a'
tmux send-keys 'cd a' 'C-m'
tmux select-window -t "example:0"
tmux select-pane -t 0
tmux -2 attach-session -t example
tee
命令记录结果。您的crontab应该如下所示:0 15 * * * python yourScript.py | tee –a logFile.txt
好的,我明白你的意思。我过去也做过类似的事情。
要让cron在下午3点运行您的脚本并将其附加到日志文件中,您可以简单地这样做:
0 15 * * * command >> log
# 只记录标准输出
或者
0 15 * * * command &>> log
# 记录标准输出和错误输出
如果您想在终端中查看它,我可以想到两种可能性:
像您说的那样,您可以执行一个while true
循环,每n
秒检查一次时间,并在下午3点时执行某些操作。
或者,您可以设置一个始终处于开启状态的API端点,并通过其他程序在下午3点触发它。例如,可以通过cron触发它。
个人而言,我还喜欢使用tmux
或screen
来登录并查看发生了什么,而不仅仅是检查日志文件。所以我希望您能找到适合您用例的可行解决方案!
h_exec = 15
t_hour = 60 * 60
t_day = 24 * t_hour
t_now = time.time()
t_timeout = math.floor((t_now + ((24 - h_exec) * t_hour)) / t_day) * t_day + (h_exec * t_hour) - t_now