2 votes

7z ne fonctionne pas à partir du shell script sous putty

Je veux sauvegarder périodiquement un fichier en utilisant la fonction 7z commandement.

Vous trouverez ci-dessous testscript.sh :

#!/bin/bash
SRCDIR="/var/www/html/folder2beBackedup/"
DESTDIR="/var/www/html/backups/"
FILENAME=bk_test-$(date +%Y%m%d%H%M%S).7z
7za a $DESTDIR$FILENAME $SRCDIR

Je lance le script en mastic comme ça :

/bin/bash /var/www/html/testscript.sh

Mais mastic renvoie cette erreur : "Impossible de trouver 1 fichier". Voir enter image description here

Si j'exécute directement le 7z commande via mastic alors cela fonctionne, mais la même commande ne fonctionne pas à partir de testcript.sh .

3voto

eddiem Points 845

Je soupçonne qu'il y a une erreur de copier/coller avec votre SRCDIR comme la variable WARNING: No more files indique qu'il essaie d'analyser un répertoire sans nom. En spécifiant simplement le mauvais nom de variable (et donc aucun répertoire), il inclurait les fichiers du répertoire actuel, donc c'est probablement quelque chose de plus sinistre comme un caractère invalide dans votre script quelque part. Avez-vous essayé de regarder le script avec hexdump -C pour s'assurer qu'il n'y a pas de personnages bizarres égarés quelque part ?

Si j'utilise un répertoire source nommé "/tmp/src/"^M^M est littéralement le caractère retour chariot (inséré dans vim avec ^V ^M ), j'obtiens le même résultat que celui montré dans votre capture d'écran.

Voici un extrait de le wiki des balises bash :

  1. Vérifiez si votre script ou vos données comportent des caractères de fin de ligne de type DOS.

    • Utilice cat -v yourfile o echo "$yourvariable" | cat -v .

      Les retours à la ligne DOS apparaîtront comme ^M après chaque ligne.

      Si vous les trouvez, supprimez-les en utilisant dos2unix (alias fromdos ) ou tr -d '\r'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X