averainy's Blog

averainy

05 Sep 2025

Check Linux Reboot by Python

当使用dnf update更新完之后,可以通过dnf needs-restarting -r检测下Linux系统是否需要重启。当有多台服务器的时候会比较麻烦。因此,可以利用python写一个脚本进行检测。下面是一个参考例子。更好的办法是可以做成一个配置文件,通过python读取配置文件完成检测。

#!/usr/bin/env python3
import sys
import logging
import multiprocessing as mp
from subprocess import run
logging.basicConfig(
        level=logging.INFO,
        encoding='utf-8',
        format="%(asctime)s [%(levelname)s] %(message)s",
        handlers=[
            logging.FileHandler("/home/aaa/aaa.log"),
            logging.StreamHandler(sys.stdout)
            ]
        )

p = run( [ 'ssh','[email protected]','/bin/dnf', 'needs-restarting','-r' ] )
if  p.returncode == 1:
    logging.info('192.168.1.10 need reboot')
    run( [ 'ssh','[email protected]','/sbin/reboot', ] )
p = run( [ '/bin/dnf', 'needs-restarting','-r' ] )
if  p.returncode == 1:
    logging.info('179 need reboot')
    run( [ '/sbin/reboot' ] )