我想使用 Python 脚本备份我的网站。这是脚本:
#!/usr/bin/python
import os
import time
import datetime
from subprocess import call
DATETIME = time.strftime('%Y%d%m-%H%M%S')
BACKUP_PATH = '/Backups/backups/Test/'
WEB_PATH = '/var/www/html'
TAR_CMD = "-zcf " + BACKUP_PATH + DATETIME + "-html.tar.gz " + WEB_PATH
print TAR_CMD
call (["tar",TAR_CMD])
TAR_CMD 的输出是
-zcf /备份/备份/测试/20152111-123016-html.tar.gz /var/www/html
这是正确的 - 调用 tar 加上这个输出 tars 我的网站 - 好的。
运行python脚本时输出为:
-zcf /备份/备份/测试/20152111-123150-html.tar.gz /var/www/html
tar:胆怯地拒绝创建空档案
尝试“tar --help”或“tar --usage”获取更多信息。
我究竟做错了什么?
答案1
您需要将命令组件作为列表的元素传递,因此您可以将其添加tar
到TAR_CMD
变量中,然后使用它split(' ')
来创建以空格分隔的命令组件列表:
TAR_CMD='tar .....'
subprocess.call(TAR_CMD.split(' '))
或者直接:
subprocess.call('tar ....'.split(' '))