Je souhaite sauvegarder mon site Web à l'aide d'un script python. Voici le script:
#!/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])
La sortie de TAR_CMD est
-zcf /Backups/backups/Test/20152111-123016-html.tar.gz/var/www/html
ce qui est correct - appeler tar plus cette sortie gâche mon site Web - ok.
Lors de l'exécution du script python, le résultat est le suivant:
-zcf /Backups/backups/Test/20152111-123150-html.tar.gz/var/www/html
tar: Cowardly refuse de créer une archive vide
Essayez 'tar --help' ou 'tar --usage' pour plus d'informations.
Qu'est-ce que je fais mal?
Vous devez passer les composants de commande en tant qu'éléments d'une liste pour pouvoir ajouter tar
à la variable TAR_CMD
, puis utiliser split(' ')
pour créer une liste de composants de commande séparés par des espaces:
TAR_CMD='tar .....'
subprocess.call(TAR_CMD.split(' '))
Ou directement:
subprocess.call('tar ....'.split(' '))