練習適用於linux,類unix系統,一步乙個腳印提高python 。
001.
類unix系統中用zip命令將檔案壓縮備份至 /temporary/ 目錄下:
importosimport
time
old_files = ['
/home/zhg/aa.py
','home/zhg/bb.py']
target_dir = '
/temporary/
'target = target_dir + time.strftime('
%y%m%d%h%m%s
') + '
.zip
'zip_command = "
zip -qr %s %s
" % (target,'
'.join(old_files))
if os.system(zip_command) ==0:
"successful backup to
",target_dir
else
:
"error backup failed
"
#公升級一下:linux中上一次命令執行成功會返回0
#' '.join(sequence)方法見: 字串方法
如果要在 /temporary/ 目錄下自動以當天日期的名稱生成乙個資料夾(if判斷不存在資料夾則執行 mkdir 命令),備份的zip檔案以當時的時間命名怎麼辦?並且要在檔名後面加一段注釋,例如: /temporary/20150330/123030_add_new_file.zip
import執行結果:osimport
time
source_files = ['
/home/zhg/temptest/aa.py
','/home/zhg/temptest/bb.py']
target_dir = '
/temporary/
'today = target_dir + time.strftime('
%y%m%d')
now = time.strftime('
%h%m%s')
ifnot
os.path.exists(today):
os.mkdir(today)
print('s
uccessfully created new directory
'),today
comment = raw_input('
enter a file comment: ')
if len(comment) ==0:
target = today + '
/' + now + '
.zip
'else
: target = today + '
/' + now + '
_' + comment.replace('
','_
')+'
.zip
'zip_command = "
zip -qr %s %s
" % (target,'
'.join(source_files))
if os.system(zip_command) ==0:
print('
successfully created zip file
',target)
else
:
print('s
omthing failed
')
zhg@hang:~/testdir$ python backup.py
successfully created new directory /temporary/20150330enter a file comment: add new file
('successfully created zip file', '/temporary/20150330/135040_add_new_file.zip'
)zhg@hang:
~/testdir$ ls /temporary/20150330/135040_add_new_file.zip
#comment.replace(' ','_') 把 add new file 的
空格換成了下劃線
# 關於zip的命令可自行搜尋,當然你也可以用tar命令
python小指令碼
匹配文件內容的關鍵字,並取得該關鍵字所在行所有內容 find the row where need keyword def getcontent tfile,sstr global keyword f1 open tfile readlines for i,j in enumerate f1 if ...
gitlab備份檢查小指令碼
直接上指令碼 bin sh source etc profile 定義郵件傳送列表 maillist zisefeizhu qq.com 清理快取 clean cache 傳送郵件函式 send mail do echo e date y m d backups success,nbackups b...
《mysql資料庫備份小指令碼》
vim mysql.sh bin bash day date y m d 日期以年月日顯示並賦予day變數 size du sh var lib mysql 檢視mysql的大小並且賦予變數size echo date day tmp mysqlbak.txt 輸出日期到mysqlbak.txt檔案...