如何在 Python 中执行 tar

如何在 Python 中执行 tar

我想使用 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

您需要将命令组件作为列表的元素传递,因此您可以将其添加tarTAR_CMD变量中,然后使用它split(' ')来创建以空格分隔的命令组件列表:

TAR_CMD='tar .....'
subprocess.call(TAR_CMD.split(' '))

或者直接:

subprocess.call('tar ....'.split(' '))

相关内容