web-dev-qa-db-ja.com

pythonでtarする方法

pythonスクリプトを使用してWebサイトをバックアップしたい。これはスクリプトです:

#!/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 /Backups/backups/Test/20152111-123016-html.tar.gz/var/www/html

これは正しいです-tarを呼び出すと、この出力は私のWebサイトをtarします-わかりました。

pythonスクリプトを実行すると、出力は次のようになります。

-zcf /Backups/backups/Test/20152111-123150-html.tar.gz/var/www/html

tar:空のアーカイブの作成をto病に拒否

詳細については、「tar --help」または「tar --usage」を試してください。

何が間違っていますか?

4
Stefan Meyer

コマンドコンポーネントをリストの要素として渡す必要があるため、tarTAR_CMD変数に追加し、split(' ')を使用して、スペースで区切られたコマンドコンポーネントのリストを作成できます。

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

または直接:

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