記事ディレクトリ
Python は定期的にシェルコマンドを実行します
Python でシェル コマンドを実行するようにスケジュールされたタスクを設定するには、subprocess
モジュールを使用してコマンドを実行し、time
モジュールを使用します。タイミングを処理するため。以下は、シェル コマンドをさまざまな間隔で定期的に実行する方法を示す簡単な例です。
import subprocess
import time
def run_shell_command(command):
try:
# 执行shell命令
subprocess.run(command, shell=True, check=True)
except subprocess.CalledProcessError as e:
print(f"An error occurred: {
e}")
# 每隔一定时间执行命令的函数
def schedule_command(command, interval):
while True:
run_shell_command(command)
time.sleep(interval)
# 每过20小时执行一次的命令
def every_20_hours_command(command):
schedule_command(command, 20 * 3600)
# 每过一分钟执行一次的命令
def every_minute_command(command):
schedule_command(command, 60)
# 每过一秒钟执行一次的命令
def every_second_command(command):
schedule_command(command, 1)
# 示例命令
shell_command = "echo 'Hello, World!'"
# 根据需要选择函数并取消注释
# every_20_hours_command(shell_command)
# every_minute_command(shell_command)
# every_second_command(shell_command)
上記のコードでは次のようになります。
run_shell_command
関数は、subprocess.run
を使用して、指定されたシェル コマンドを実行します。実行中にエラーが発生した場合、例外が捕捉されて出力されます。schedule_command
この関数は、指定されたシェル コマンドを実行し、実行後に指定された間隔 (秒単位) だけ一時停止する無限ループです。every_20_hours_command
、every_minute_command
、every_second_command
関数はそれぞれ異なる時間間隔を設定し、schedule_command
関数を呼び出します。
このスクリプトでは、shell_command
は定期的に実行するシェル コマンドです。これを任意の有効なシェル コマンドに置き換えることができます。