web-dev-qa-db-fra.com

Tâche Cron: ajouter la date actuelle au nom de fichier via Cron?

J'ai créé une tâche Cron sur mon hébergeur pour sauvegarder quotidiennement ma base de données et j'aimerais qu'elle ajoute la date actuelle au nom de fichier.

Mon travail Cron ressemble à ceci

mysqldump -u username -pPassword db_name > www/db_backup/db_backup+date%d%m%y.sql

Mais le fichier que je reçois est le suivant: db_backup + date aucune extension de fichier ou date.

J'ai aussi essayé cette commande

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_'date +%d%m%y'.sql 

mais cela ne donne même pas de sortie de fichier.

Quelle est la bonne syntaxe pour ajouter la date à mon fichier ??

Sincère
- Mestika

33
Mestika

Tu devrais utiliser `` au lieu de '' autour de la commande que vous souhaitez exécuter pour générer la date actuelle de votre nom de fichier.

29
Fonzarely
* * * * * echo "hello" > /tmp/helloFile_$(date +\%Y\%m\%d\%H\%M\%S).txt

Vous avez juste besoin d'échapper aux parenthèses.

Autres formats de date: http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

54
ethanneff

Vous devez échapper au format et utiliser l'évaluation

mysqldump -u username -pPassword db_name > www/db_backup/db_backup_`date +\%d\%m\%y`.sql
5
RomAndNonES

J'ai besoin de créer un nouveau fichier journal à chaque exécution de la commande. Donc, chaque jour, je devrais avoir un journal comme celui-ci /home/me/Logs/power_20151230.log La ligne crontab que j'utilise est la suivante:

00 8 * * * /home/me/power.py ON >> /home/me/Logs/power\_`date +20\%y\%m\%d`

Remarque le caractère de soulignement doit également être échappé.

5
edison