近期打算备份下服务器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