web-dev-qa-db-fra.com

Obtenir la date et l'heure actuelles pour valider le message à git

Je suis en train d'écrire un script shell pour envoyer automatiquement les sauvegardes à git à l'aide de crontab. Comment puis-je obtenir la date et l'heure actuelles dans le message de validation? Ceci est mon script:

cd /var/www/html/myweb
php bin/magento setup:backup --code --media --db
cp /var/www/html/myweb/var/backups/* /home/myweb/backups/myweb/backups/
cd /home/myweb/backups/myweb
git add .
git commit -m  "date +"%D %T""
git Push
2
RUC...

Vous pouvez utiliser Commande de substitution pour obtenir la date et l'heure actuelles de l'exécution de votre script:

git commit -m "$(date +"%D %T")"

Vous pouvez également enregistrer la sortie de date dans une variable, par exemple. si vous voulez capturer l'heure à laquelle le script a été démarré à, ajoutez comme première commande, par exemple.

timestamp=$(date +"%D %T")

et l'utiliser plus tard comme:

git commit -m "$timestamp: Backup"

S'il s'agit vraiment de votre script entier, n'oubliez pas d'ajouter un Shebang à la première ligne. J'essaie toujours d'éviter cd dans les scripts et de donner plutôt des chemins complets. Enfin, il est utile de garder le code propre et facilement compréhensible si vous stockez des chemins longs dans des variables:

#!/bin/bash
path1=/var/www/html/myweb
path2=/home/myweb/backups/myweb

php "$path1/bin/magento" setup:backup --code --media --db
cp "$path1/var/backups/*" "$path2/backups/"
git add "$path2"
git commit -m "$(date +"%D %T")"
git Push

Notez que vous ne pouvez pas utiliser ~ dans un chemin lorsque vous le faites comme cela car les variables sont développées après le tilde, vous pouvez utiliser $HOME cependant.

2
dessert