使用python指令碼備份crontab定時任務
阿新 • • 發佈:2019-02-04
近期打算備份下伺服器crontab任務,以防個人失誤,清空定時任務,其實我覺得shell指令碼更簡單,但是想練習下python,決定使用python指令碼進行,前提執行主機做好對其他節點伺服器ssh免祕鑰登入
vi crontab_backup.py #!/usr/bin/env python # -*- coding : UTF-8 -*- # Author : CuiLei # Date: 2016-06-14 # Filename: crontab_backup.py # Description: backup crontab , host /root/crontab_backup/ import datetime import re import sys import time import os #備份目標 source='/var/spool/cron' print 'backup files:',source #備份到的位置 target_dir='/root/crontab_backup/' dt=datetime.datetime.now() #開啟iplist檔案 f = open('iplist') for line in f.readlines(): #查詢IP ip = re.findall(r'((?:\d{1,3}\.){3}\d{1,3})',line)[0] print 'backup host: ',ip #主機名稱 host = line[14:].replace(" ","").strip('\n') #目錄名稱 target=target_dir + host + dt.strftime('%Y%m%d%H%M%S') print 'backup target: ',target #首次執行需要建立目錄 mk= "mkdir %s" % target_dir print 'backup dir: ',mk #cp的命令 cmd="cp -rf %s %s" % (source,target) #呼叫命令ssh伺服器執行命令 process1 = os.popen("/usr/bin/ssh %s %s" % (ip,mk)).read() #睡眠1秒 time.sleep(1) #執行備份 process2 = os.popen("/usr/bin/ssh %s %s" % (ip,cmd)).read() if os.system(process2)==0 : print 'successfull backup' else: print 'failed backup' #iplist檔案格式 vi iplist 192.168.1.154 test01 192.168.1.155 test02