2010-08-09 7 views
6

las siguientes obras finas de línea de comandoserror Cron con el uso de comillas inversas

/usr/bin/mysqldump -uUser -pPass Db_name > /var/www/db_backup/db.`date +%Y%m%d%H%M`.sql 

pero cuando trato de hacer eso en cron, me sale el error:

bad ` sign 
errors in crontab file, can't install 

vi otra persona en el Net resuelve el mismo problema escapando de los signos de porcentaje, pero eso no ayudó y lo intenté con solo la fecha dentro de las comillas inversas sin especificadores de formato y todavía obtuve los errores.

También he visto el argumento de la fecha entre comillas simples o dobles, pero eso tampoco ayuda.

De acuerdo, podría simplemente incluirlo en un guión y ejecutarlo, supongo, pero ¿qué divertido es eso?

¿Alguna idea? Estoy usando RHEL 5.

+0

lee 'man crontab' para ver qué hacer con los símbolos de porcentaje. –

Respuesta

14

Prueba con $() en lugar de acentos abiertos. Y es probable que necesite evitar los signos de porcentaje, ya que cron los convierte a líneas nuevas de lo contrario.

* 0 * * * /usr/bin/mysqldump -uUser -pPass Db_name > /var/www/db_backup/db.$(date +\%Y\%m\%d\%H\%M).sql 

Además, debe store the password in an option file con permisos de seguridad (por ejemplo. 600 ó 640) en lugar de pasarlo en la línea de comandos.

+0

¡Gracias! Eso es justo lo que estaba buscando. Y gracias por el consejo sobre el archivo de opciones también. – amac44

4

Ponga su línea de un script (como se muestra) en un archivo de script adecuado e invocar que desde cron:

$ cat /usr/local/bin/db-backup 
#!/bin/sh 
/usr/bin/mysqldump -uUser -pPass Db_name > \ 
    /var/www/db_backup/db.`date +%Y%m%d%H%M`.sql 
$ # use RHEL commands to add db-backup to your crontab 
Cuestiones relacionadas