Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1179 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  problème d'exécution de script avec crontab

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

problème d'exécution de script avec crontab

n°705461
Krapaud
Posté le 12-07-2005 à 12:57:21  profilanswer
 

hello!
 
 
j'ai un petit soucis sur une debian.
 
J'ai un script à la racine d'un disque hda1 monté sur / et ce script fait une archive tar des données contenues dans un dossier /partage vers un second disque hdc1 monté sur /home
 
Si je lance ce script en tant que root ou un autre ayant droit, ça marche.
Par contre j'ai planifié son exécution la nuit avec un crontab et le fichier tar.gz, au lieu de faire 11Mo ne fait que 1Mo :o
 
Comment-se fait-ce?
 

Code :
  1. tar -cvf /home/sauvegarde/backup.tar /partage/*
  2. gzip /home/sauvegarde/backup.tar


 

Code :
  1. SHELL=/bin/sh
  2. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  3. # m h dom mon dow user  command
  4. 50 23   * * *   root    /./script

mood
Publicité
Posté le 12-07-2005 à 12:57:21  profilanswer
 

n°705466
jlighty
Posté le 12-07-2005 à 13:03:22  profilanswer
 

2 choses :
- quels sont les fichiers manquant entre les 2 exécutions
- CRON a t-il envoyé un mail (/var/spool/)indiquant qu'il ne pouvait exécuter une commande ?
 
en modifiant le script de la sorte :

Code :
  1. #/bin/sh
  2. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/*
  3. /bin/gzip /home/sauvegarde/backup.tar


cela marche t-il ?


Message édité par jlighty le 12-07-2005 à 13:12:53
n°705470
Profil sup​primé
Posté le 12-07-2005 à 13:09:47  answer
 

pourquoi faire un tar puis un gzip ??
 

Code :
  1. /bin/tar -cvzf /home/sauvegarde/backup.tar.gz /partage/*


 
suffit largement...

n°705473
jlighty
Posté le 12-07-2005 à 13:12:37  profilanswer
 

ca dépend de l'implémentation de tar dans la machine son code est donc portable sur d'autres systèmes :D en la commande tar par défaut ne peut pas compresser en GZIP.
Ceci dit l'avantage tar -cvzf est d'éviter d'oublier de supprimer le fichier temporaire donc gain de place...

n°705487
Krapaud
Posté le 12-07-2005 à 13:38:15  profilanswer
 

jlighty a écrit :

2 choses :
- quels sont les fichiers manquant entre les 2 exécutions
- CRON a t-il envoyé un mail (/var/spool/)indiquant qu'il ne pouvait exécuter une commande ?
 
en modifiant le script de la sorte :

Code :
  1. #/bin/sh
  2. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/*
  3. /bin/gzip /home/sauvegarde/backup.tar


cela marche t-il ?


 
 
rien dans /var/spool, pour les fichiers il en manque 99% et le fichier modifié, je vais le tester maintenant avec le tar -cvzf :)

n°705490
Tomate
Posté le 12-07-2005 à 13:44:10  profilanswer
 

je dirais même plus : tar jcvf :)


---------------
:: Light is Right ::
n°705493
Krapaud
Posté le 12-07-2005 à 13:48:31  profilanswer
 

bon même avec le /bin devant ça ne marche pas :??:
 
en plus j'me suis trompé, c'est pas 1mo qu'il fait avec le cron, c'est 100Ko :D
 
là je viens de retester, j'ai obtenu un fichier de 350Ko, donc une toute petite partie des données s'y trouve :o

n°705494
Tomate
Posté le 12-07-2005 à 13:49:52  profilanswer
 

essaies de loguer la sortie standard & erreur voir ce qu'il se passe


---------------
:: Light is Right ::
n°705495
jlighty
Posté le 12-07-2005 à 13:50:01  profilanswer
 

Quelles sont les points communs entre les fichiers compressés ? même repertoire ? même propriétaire ? ...

n°705496
Tomate
Posté le 12-07-2005 à 13:50:36  profilanswer
 

et rsync tu préfères pas ?


---------------
:: Light is Right ::
mood
Publicité
Posté le 12-07-2005 à 13:50:36  profilanswer
 

n°705498
Krapaud
Posté le 12-07-2005 à 13:51:52  profilanswer
 

plusieurs repertoires, aucune gestion de droits.
en fait c'est les données partagées via un serveur samba.
 
rsync? connais pas :D

n°705501
Tomate
Posté le 12-07-2005 à 13:53:34  profilanswer
 

Krapaud a écrit :

plusieurs repertoires, aucune gestion de droits.
en fait c'est les données partagées via un serveur samba.
 
rsync? connais pas :D


ça sert justement à faire des sauvegardes :D


---------------
:: Light is Right ::
n°705504
Krapaud
Posté le 12-07-2005 à 13:55:08  profilanswer
 

oui j'me doute bien, mais ça ne règle pas mon problème de cron, et là ça me chagrine (j'aime pas rester sur un bug) :D
 
donc là je ne vois pas d'où vient le problème, parce que mon script est plus que bidon, il marche quelques secondes puis s'arrête :o

n°705505
jlighty
Posté le 12-07-2005 à 13:57:03  profilanswer
 

Ce que je voulais dire, dans l'archive de 100ko quelles sont les points communs entre les fichiers compressés ? même repertoire ? même propriétaire ? ...

n°705509
Krapaud
Posté le 12-07-2005 à 13:58:47  profilanswer
 

non, il y a deux repertoires commençant par la lettre "A", les propriétaires sont les mêmes (fichiers copiers/collés depuis un partage windows), aucune gestion de droits dans samba...
 
bref le plus simple qui soit :o

n°705511
jlighty
Posté le 12-07-2005 à 14:01:53  profilanswer
 

Cron n'aime peut être pas le "*" ?
avec ceci :

Code :
  1. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/

n°705517
Krapaud
Posté le 12-07-2005 à 14:07:39  profilanswer
 

ok, je teste :)

n°705519
Krapaud
Posté le 12-07-2005 à 14:09:13  profilanswer
 

même chose :o

n°705523
jlighty
Posté le 12-07-2005 à 14:13:13  profilanswer
 

bon etape suivante -> rédiriger les erreurs de tar dans un fichier.

Code :
  1. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/ 2> /home/sauvegarde/tar.log


et regarde le contenu de tar.log

n°705527
jlighty
Posté le 12-07-2005 à 14:14:17  profilanswer
 

même chose pour gzip

Code :
  1. /bin/gzip /home/sauvegarde/backup.tar 2> /home/sauvegarde/gzip.log

n°705536
Krapaud
Posté le 12-07-2005 à 14:34:48  profilanswer
 

ok :jap:
 
je le fais pour le seul tar -cvzf là :)

n°705541
Krapaud
Posté le 12-07-2005 à 14:43:40  profilanswer
 

alors grosse incompréhension :  
ça marche :??:
 
il a suffit que je rajoute le log pour que maintenant ça fonctionne :o

n°705543
jlighty
Posté le 12-07-2005 à 14:44:52  profilanswer
 

il n'y avait pas une erreur de syntaxe ? un caractère en trop ?

n°705554
Krapaud
Posté le 12-07-2005 à 15:08:09  profilanswer
 

non, je n'ai fait qu'ajouter un > test.log
 
et puis ça marchait bien quand je lançais le script hors du cran :jap:
 
 
merci bien :hello:

n°705556
Tomate
Posté le 12-07-2005 à 15:09:09  profilanswer
 

louche


---------------
:: Light is Right ::
n°705558
Krapaud
Posté le 12-07-2005 à 15:10:09  profilanswer
 

comme tu dis :o

n°709466
Krapaud
Posté le 21-07-2005 à 12:04:55  profilanswer
 

alors là c'est du délire :o
 

Code :
  1. for i in `seq 99 -1 1`; do
  2. j=`expr $i + 1`;
  3. mv "/home/sauvegarde/backup$i.tar.gz" "/home/sauvegarde/backup$j.tar.gz";
  4. done;
  5. mv /home/sauvegarde/backup.tar.gz /home/sauvegarde/backup1.tar.gz
  6. /bin/tar -cvzf /home/sauvegarde/backup.tar.gz /partage/ >/home/sauvegarde/backup.log


 
depuis que j'ai rajouté la boucle for, le script de fonctionne plus quand il est exécuté par un cron :'(

n°709469
jlighty
Posté le 21-07-2005 à 12:06:36  profilanswer
 

remplace seq par /usr/bin/seq
et expr par /usr/bin/expr

n°709470
jlighty
Posté le 21-07-2005 à 12:07:45  profilanswer
 

Normalement lorsque tu as inséré le script dans la crontab, tu as dû redirigé les erreurs dans un fichier Il suffit d'ouvrir ce fichier pour trouver l'erreur (command not found)

n°709472
Krapaud
Posté le 21-07-2005 à 12:11:07  profilanswer
 

jlighty a écrit :

Normalement lorsque tu as inséré le script dans la crontab, tu as dû redirigé les erreurs dans un fichier Il suffit d'ouvrir ce fichier pour trouver l'erreur (command not found)


euh, en fait je ne sais pas rediriger les erreurs :o

n°709476
Krapaud
Posté le 21-07-2005 à 12:13:31  profilanswer
 

même en modifiant seq et expr en indiquant leur chemin, ça ne fonctionne pas non plus :o

n°709477
jlighty
Posté le 21-07-2005 à 12:17:39  profilanswer
 

dans ta crontab, tu rajoutes à la fin :

Code :
  1. 2> /home/sauvegarde/tar.log


ex:  

Code :
  1. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/ 2> /home/sauvegarde/tar.log

n°709481
chaica
Posté le 21-07-2005 à 12:20:37  profilanswer
 

linux rediriger erreurs  
dans google :D


---------------
Du taf dans le Logiciel Libre : https://www.linuxjobs.fr
n°709487
deather2
Posté le 21-07-2005 à 12:27:36  profilanswer
 

Ca ne viendrait pas du fait que le fichier ne commence pas par :
#!/bin/sh
?

n°709490
jlighty
Posté le 21-07-2005 à 12:31:26  profilanswer
 

en effet s'il n'a pas mis #!/bin/sh cron va pas pouvoir interpréter l'instruction for.

n°709492
Krapaud
Posté le 21-07-2005 à 12:33:13  profilanswer
 

jlighty a écrit :

dans ta crontab, tu rajoutes à la fin :

Code :
  1. 2> /home/sauvegarde/tar.log


ex:  

Code :
  1. /bin/tar -cvf /home/sauvegarde/backup.tar /partage/ 2> /home/sauvegarde/tar.log



maintenant que j'ai rajouté ça dans le crontab ça marche :'(
j'y comprends rien :o

n°709494
Krapaud
Posté le 21-07-2005 à 12:34:07  profilanswer
 

deather2 a écrit :

Ca ne viendrait pas du fait que le fichier ne commence pas par :
#!/bin/sh
?


 
 
sisi, je l'ai mis :o

n°709497
jlighty
Posté le 21-07-2005 à 12:36:49  profilanswer
 

Une hypothèse, il se peut que tar ou un des programmes appelés dans le script doit nécessairement envoyer des informations sur l'entrée standard ou erreur. Si tu ne récupères pas ces infos soit directement sur le terminal (lancé à la main) ou par une redirection dans un fichier (ce qui tu as fait), il se peut que le programme plante.


Message édité par jlighty le 21-07-2005 à 12:37:29
n°709500
Krapaud
Posté le 21-07-2005 à 12:40:32  profilanswer
 

ah ok, c'est bizarre parce que la première fois il fallait une sortie juste pour le tar -cxvf, et là il en faut une dans le crontab directement :o
 
En tout cas une nouvelle fois merci :jap: :jap:

n°714291
redmail
Posté le 03-08-2005 à 11:44:42  profilanswer
 

Il se sent surveillé... alors il n'ose plus trop faire son malin  :lol:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  problème d'exécution de script avec crontab

 

Sujets relatifs
commande rsync avec ssh dans la crontabGros probleme, les vidéos sont de toutes les couleurs !!!
probleme de captures de videos avec snagitProblème avec APT-Proxy...
probleme installation linux mandrake 10.2[Ubuntu] Modem. (Sous Mandrake : aucun probleme, mais pas sous Ubuntu)
probleme linux cd bootable kaella[amsn] probleme de compte
[Script Shell] Avoir une date en anglais (Jul 08 au lieu de jui 08)[NetBSD] problème à l'installation
Plus de sujets relatifs à : problème d'exécution de script avec crontab


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR