Structure d'un nom de fichier dans la crontab

Le
Alain Vaugham
Bonjour la liste,

La crontab ne fait pas ce que je veux

Pourtant en ligne de commande j'ai bien ce que je veux :
$ pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date +%m)$(date +%=
d)-$(date +%H)$(date +%M)$(date +%S).sql

Par contre, dans la crontab, cette même syntaxe ne génère pa=
s le
fichier escompté :
* * * * * pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date +%m)$=
(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql

Je me suis douté qu'il fallait ajouter des séparateurs de champs.
Comme le man de crontab n'aborde pas le sujet j'avance à tâtons a=
vec ce lien :
http://fr.wikipedia.org/wiki/Crontab
J'ai donc testé différentes combinaisons de caractères "'/[=
]{}
en m'inspirant également de la syntaxe employée par le fichier .p=
rocmail
mais sans succès.
Il me semble qu'en dehors de la ligne de commande les syntaxes varient
au sein d'une même distribution.

Est-ce que quelqu'un pourrait m'indiquer le bon tuto pour une Squeeze?

Merci beaucoup par avance.

--
Alain Vaugham
Clef GPG : 0xD26D18BC

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20120806120914.05a8421a@mach07.localdomain
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bzzz
Le #24686362
On Mon, 6 Aug 2012 12:09:14 +0200
Alain Vaugham

Par contre, dans la crontab, cette même syntaxe ne génère pas le
fichier escompté :
* * * * * pg_dump -a db_mabase > ~/backup/db_mabase_$(date
+%Y)$(date +%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql



Il suffirait de lire la doc et de 'gader les 'exemples' existant déj à
pour s'apercevoir qu'il manque le user...

--
<Lilaaa> mais moi je suis une princesse qui attend son prince charmand!
<Arafel> Attends mais tu crois quoi? Qu'un type qui est obligé de pren dre
tout seul d'assaut une forteresse, zigouiller un putain de dragon,
laminer une sorcière et tout ça juste pour tirer un coup , c'est un
méga beau mec avec une haleine mentholée, la dent qui br ille en
faisant TINT! et les cheveux qui volent au vent?
<Lilaaa> ...
<Arafel> Tu peux me croire petite, Shrek, c'est la version la plus
réaliste d'un compte de fées... C'est à la limite d u documentaire...
<Lilaaa> ...
<Arafel> Maintenant, si tu veux, je t'explique vite fait pour le père noël,
dieu et la petite souris...

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nicolas Gadoux
Le #24686392
Salut,

cela dépend certainement de ton shell.

Je te conseille dans ton crontab :
- d'utiliser les chemins complets vers ton script ou programme (ou de le
déclarer via la variable PATH)
- de toujours "sélectionner" ton shell (via la variable SHELL)
- d'éviter cette syntaxe $(commande) et de privilégier celle là :
`commande` (car la première ne fonctionne pas dans tous les shells)

Le plus simple et propre étant de créer un script (avec un shebang) et
de l'appeler dans ton crontab (toujours en chemin complet)

Nicolas

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Tanguy Ortolo
Le #24686432
Nicolas Gadoux, 2012-08-06 13:57+0200:
Je te conseille dans ton crontab :
- d'éviter cette syntaxe $(commande) et de privilégier celle là :
`commande` (car la première ne fonctionne pas dans tous les shells)



Cette syntaxe `commande` est caduque depuis des années, remplacée par
$(commande) qui est plus flexible et prise en charge par tous shells
actuels.

--
,--.
: /` ) Tanguy Ortolo | `-' Debian Developer _

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/jvocft$nb$
Alain Vaugham
Le #24686452
Le Mon, 6 Aug 2012 12:14:53 +0000 (UTC),
Tanguy Ortolo
Nicolas Gadoux, 2012-08-06 13:57+0200:
> Je te conseille dans ton crontab :
> - d'éviter cette syntaxe $(commande) et de privilégier celle là :
> `commande` (car la première ne fonctionne pas dans tous les shells)

Cette syntaxe `commande` est caduque depuis des années, remplacà ©e par
$(commande) qui est plus flexible et prise en charge par tous shells
actuels.




Merci Nicolas/Tanguy
Je vais donc remplacer la commande dans la crontab par un script.



--
Alain Vaugham
Clef GPG : 0xD26D18BC

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nicolas Gadoux
Le #24686512
Ah ok, je ne savais pas qu'elle visait à la remplacer, je pensais juste
que c'était une autre façon de faire.
Qu'apporte-t'elle de mieux ? J'ai cherché sur le net mais n'ai rien trouvé.

En tout cas elle n'a pas été implémentée en C-Shell (shell par défaut
sous FreeBSD par exemple).

Cette syntaxe `commande` est caduque depuis des années, remplacée par
$(commande) qui est plus flexible et prise en charge par tous shells
actuels.




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
nicolas.patrois
Le #24686632
Le 06/08/2012 14:43:48, Nicolas Gadoux a écrit :

Qu'apporte-t'elle de mieux ? J'ai cherché sur le net mais n'ai rien
trouvé.



Elle permet de les emboîter, par exemple.

nicolas patrois : pts noir asocial
--
RÉALISME

M : Qu'est-ce qu'il nous faudrait pour qu'on nous considère comme des
humains ? Un cerveau plus gros ?
P : Non... Une carte bleue suffirait...

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Grégory Bulot
Le #24686942
Bonjour, Bonsoir,

Le Mon, 6 Aug 2012 12:09:14 +0200, Alain Vaugham, vous avez écrit :

Bonjour la liste,

La crontab ne fait pas ce que je veux...

Pourtant en ligne de commande j'ai bien ce que je veux :
$ pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date
+%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql

Par contre, dans la crontab, cette même syntaxe ne génère pas le
fichier escompté :
* * * * * pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date
+%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql



Maintenant que tu as [résolu]

pg_dump -a db_mabase > ~/backup/db_mabase_$(date +"%Y%m%d-%H%M%S" ).sql
me semble plus propre (moins crade) : un seul appel au shell, au lieu
de 6


--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Alain Vaugham
Le #24687362
Le Mon, 6 Aug 2012 18:55:00 +0200,
Grégory Bulot
Bonjour, Bonsoir,

Le Mon, 6 Aug 2012 12:09:14 +0200, Alain Vaugham, vous avez écrit :

> Bonjour la liste,
>
> La crontab ne fait pas ce que je veux...
>
> Pourtant en ligne de commande j'ai bien ce que je veux :
> $ pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date
> +%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql
>
> Par contre, dans la crontab, cette même syntaxe ne génèr e pas le
> fichier escompté :
> * * * * * pg_dump -a db_mabase > ~/backup/db_mabase_$(date +%Y)$(date
> +%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql

Maintenant que tu as [résolu]

pg_dump -a db_mabase > ~/backup/db_mabase_$(date +"%Y%m%d-%H%M%S" ).sql
me semble plus propre (moins crade) : un seul appel au shell, au lieu
de 6





Merci pour la correction.
Je séparais tout car je n'arrivais pas à insérer le "-" entr e le jour
et l'heure.


--
Alain Vaugham
Clef GPG : 0xD26D18BC

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Alain Vaugham
Le #24687462
Le Mon, 6 Aug 2012 13:48:19 +0200,
Bzzz
On Mon, 6 Aug 2012 12:09:14 +0200
Alain Vaugham
>
> Par contre, dans la crontab, cette même syntaxe ne génèr e pas le
> fichier escompté :
> * * * * * pg_dump -a db_mabase > ~/backup/db_mabase_$(date
> +%Y)$(date +%m)$(date +%d)-$(date +%H)$(date +%M)$(date +%S).sql

Il suffirait de lire la doc et de 'gader les 'exemples' existant déj à
pour s'apercevoir qu'il manque le user...




Non, il ne manque pas le user.
Avec cette syntaxe dans la crontab, pg_dump déverse bien dans un fichi er.
C'est seulement le nom de ce fichier qui n'est pas celui escompté.

Avant de poster, j'ai collecté bon nombre d'exemples qui ne conviennen t pas...

--
Alain Vaugham
Clef GPG : 0xD26D18BC

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Bzzz
Le #24687482
On Mon, 6 Aug 2012 21:54:47 +0200
Alain Vaugham

Non, il ne manque pas le user.
Avec cette syntaxe dans la crontab, pg_dump déverse bien dans un
fichier.



Pas trop normal ça, chez moi en dehors de postgres personne ne peut
se connecter sans mot de passe.

C'est seulement le nom de ce fichier qui n'est pas celui
escompté.



Tu fais un script genre:

#!/bin/sh
TS=$(date +"%Y-%m-%d_%Hh%M")
pg_dump -a db_XYZ > /home/userx/backup/db_XYZ_${TS}.sql

que tu rends exécutable et que tu colles dans
/usr/local/bin/pgbackup_XYZ.sh

et un crontab:
* * * * * postgres if [ -x /usr/local/bin/pgbackup_XYZ.sh ]; then /usr/lo cal/bin/pgbackup_XYZ.sh; fi

--
<Angel> C'est dans quel conte qu'ils sont sept ?
<Foxbot> Dans cendrillon
<Angel> T'es sur ?
<Foxbot> Ouais. Cendrillon et les citrouilles, ça fait bien 7.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme