使用python指令碼備份crontab定時任務

2021-07-13 12:24:08 字數 1560 閱讀 5592

近期打算備份下伺服器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...