Python
一、题目:
#!/usr/bin/env python
我们已经探究了python语言的方方面面,现在我们将通过设计编写一个有用的程序将这些内容有机的结合起来。
主要目标是让大家有能力独自编写程序。
要求:
我们要解决的问题是”希望编写一个程序,用于创建所有重要文件的备份”。
尽管这个问题很简单,但并没有给出足够多的直观信息用以创建解决方案。所以进行少量的分析还是必须的。
例如,如何指定哪些文件需要备份?如何存储?存在哪?
适当的分析过问题后,我们开始设计程序。我们创建一个用于指明程序应该如何工作的列表。
在本例中,我已经创建了一个我希望程序如何工作的列表。
如果换作你来设计,你可能不会和我一样分析问题,毕竟每个人都有自己解决问题的思路,这很正常.
1.需要备份的文件和目录由一个列表指定。
2.备份必须存在一个主备份目录中。
3.文件会被备份为一个zip文件。
4.这个zip文件以当前的日期和时间命名。
二、代码:
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source=['/home/zkpk/hadoop-2.5.2/bin','/home/zkpk/hadoop-2.5.2/lib']
# If you are using Windows, use source=[r'C:\Documents',r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir='/mnt/e/backup/' #Remember to change this to what you will be using
# 3. The files are backed up into a zip file
# 4. The name of the zip archive is the current date and time
target=target_dir+time.strftime('%Y%m%d%H%M%S')+'.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command="zip -qr '%s' %s" %(target,' '.join(source))
# Run the backup
if os.system(zip_command)==0:
print 'Successful backup to',target
else:
print 'Backup FAILED'
~
三、运行
$python backup_ver1.py
四、异常:
zip I/O error: Permission denied zip error: Could not create output file (/mnt/e/backup/20160112014418.zip) Backup FAILED
五 、分析+方案:
创建保存路径(/mnt/e/backup/)所属组、用户权限root,而操作文件在普通用户。所以会导致权限不够。
方案:chown 组:用户 /mnt/e/backup