python备份2
来源:互联网 发布:树莓派ubuntu系统vnc 编辑:程序博客网 时间:2024/05/19 15:39
(本文由Tengda huang 发表于 http://blog.csdn.net/cogent2001 ,该文章所提到的程序为原创,使用者可以任意引用,修改该程序。转载请注明出处,谢谢!)
近来忙东忙西,有些重复性的事务就懒得做,比如文件备份。不过不做也不行。这两天闲下来,现学现用python写了这个文件自动备份的脚本。
有以下2个亮点:
1.可以放在计划任务中定期执行,所需备份的内容由dsvr1list.txt文件提供,备份文件自动备份到按当前日期生成的目录中。
2.程序刚开始就执行清除1个月以前的所有备份目录,这个功能对于只有特定大小的备份设备及其有用,从此文件备份完全不用人工干涉。
代码很简单,该注释的我都注释了。需要注意的是,我安装的的是python 2.5.1,是否对其他版本的python兼容有待考查;压缩格式我选用7-zip,其中7z.exe是它的命令行程序,该软件为开源软件,并且压缩比应 该算是同类软件中最高的。(经过我的测试,备份文件服务器上2.4G左右的东西,压缩后只剩不到900M)如果第一次安装python环境和7-zip软 件,请为它们设置path变量,因为我的脚本里面假定它们可以在任何目录下执行。
#!/usr/bin/python
# Filename: bDatasvr1.py
# This program is for files backup only
# It also needs 7-zip as the compress tool.
# Tengda huang, Dec 17th, 2007
# ver 1.0
import os
import time
import distutils.dir_util
import datetime
# connecting to the remote computer
link_command = r"net use k: //10.10.10.1/mysvr1 mypassword /user:backupUser"
print 'Connecting to remote computer'
if os.system(link_command) == 0:
print 'Successful connecting to drive k !'
else:
print 'Drive k already linked or link failed!'
# delete old directories and files if the dir name created by time is older than 30 days
for root, dirs, files in os.walk('k:'):
for name in dirs:
(y1, m1, d1) = (int(x) for x in name.split('-'))
date1 = datetime.date(y1, m1, d1)
datenow = time.strftime('%Y%m%d')
y2 = int(datenow[:4])
m2 = int(datenow[4:6])
d2 = int(datenow[6:])
date2 = datetime.date(y2, m2, d2)
if (date2 - date1).days > 30:
print 'Expired dir! Deleting directory... ', name
distutils.dir_util.remove_tree(os.path.join("k:",name))
print 'Old directory deleting done!'
print 'Starting to create backup files!'
# 1. The files and directories to be backed up are specified in the list.
source = r'@dsvr1list.txt'
# 2. The backup must be stored in a main directory,
# that is //10.10.10.1mysvr1
# which mapped as drive k:
target_dir = 'k:'
# 3. The files are compressed and backed up into a 7-zip file type.
# The subdirectories are named by the current day time.
today = target_dir + time.strftime('%Y-%m-%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today
# The name of the zip file
target = today + os.sep + 'share' + now + '.7z'
# 5. Use the 7z command to compress and put the files in a 7z archive
zip_command = "7z a -t7z %s %s" % (target, source)
# Runing the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
# Disconnect from the remote computer
unlink_command = r"net use k: /delete"
if os.system(unlink_command) == 0:
print 'Successfully detach from drive k! '
print 'All job done!'
else:
print 'Backup FAILED'
# Filename: bDatasvr1.py
# This program is for files backup only
# It also needs 7-zip as the compress tool.
# Tengda huang, Dec 17th, 2007
# ver 1.0
import os
import time
import distutils.dir_util
import datetime
# connecting to the remote computer
link_command = r"net use k: //10.10.10.1/mysvr1 mypassword /user:backupUser"
print 'Connecting to remote computer'
if os.system(link_command) == 0:
print 'Successful connecting to drive k !'
else:
print 'Drive k already linked or link failed!'
# delete old directories and files if the dir name created by time is older than 30 days
for root, dirs, files in os.walk('k:'):
for name in dirs:
(y1, m1, d1) = (int(x) for x in name.split('-'))
date1 = datetime.date(y1, m1, d1)
datenow = time.strftime('%Y%m%d')
y2 = int(datenow[:4])
m2 = int(datenow[4:6])
d2 = int(datenow[6:])
date2 = datetime.date(y2, m2, d2)
if (date2 - date1).days > 30:
print 'Expired dir! Deleting directory... ', name
distutils.dir_util.remove_tree(os.path.join("k:",name))
print 'Old directory deleting done!'
print 'Starting to create backup files!'
# 1. The files and directories to be backed up are specified in the list.
source = r'@dsvr1list.txt'
# 2. The backup must be stored in a main directory,
# that is //10.10.10.1mysvr1
# which mapped as drive k:
target_dir = 'k:'
# 3. The files are compressed and backed up into a 7-zip file type.
# The subdirectories are named by the current day time.
today = target_dir + time.strftime('%Y-%m-%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today
# The name of the zip file
target = today + os.sep + 'share' + now + '.7z'
# 5. Use the 7z command to compress and put the files in a 7z archive
zip_command = "7z a -t7z %s %s" % (target, source)
# Runing the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
# Disconnect from the remote computer
unlink_command = r"net use k: /delete"
if os.system(unlink_command) == 0:
print 'Successfully detach from drive k! '
print 'All job done!'
else:
print 'Backup FAILED'
- python备份2
- 一个Python备份脚本
- Python备份CSDN博客
- Python实现文件备份
- Python 创建文件备份
- python备份mysql数据库
- python备份数据脚本
- Python winrar 备份
- python自动备份
- python装饰器 备份
- python 文件增量备份
- Python定时备份mysql
- python 备份mysql脚本
- Python实现文件备份
- python数据库备份
- python备份脚本
- python备份脚本
- python实践,文件备份
- 关于ShellExecute
- 娃娃鸭深入核心VCL架构剖析(李维)笔记
- 用CHttpFile实现简单的GET/POST数据
- 无法识别的配置节"xhtmlConformance"
- 笔记,零散的东西
- python备份2
- 开发GNU软件之二
- 什么是模板
- 从Developer到BA
- CMD 开启 停止服务
- C#调用API的一些基础
- 成功人士都是这样逼出来的
- asp.net结合html,javascript完成无刷新跨域数据提交
- Linux下安装openldap