近期打算備份下伺服器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\.)\d)',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
PYTHON備份指令碼
usr local python251 bin python import sysimport osimport time 如果沒有輸入引數,則會提示並且中斷。iflen sys ar 1 0 print please input source file or directory.sys exit ...
Python指令碼備份
usr bin python3 coding utf 8 保證源程式可以輸入漢字 print bool 任何為零的數字或空集 空列表 空元組和空字典等 均為false radius input u 輸入半徑 radius float float radius area radius float 2 ...
Python備份Mysql指令碼
複製 如下 usr bin python import os import time import ftplib import traceback config vars systempathchr 路徑分割符,nix用 win32用 dbuser root 資料庫使用者名稱 dbpwd dbpwd...