Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/08/2013, à 20:08

omnimax

RESOLU toujours et encore cron :(

Bonjour,

Après avoir fouillé le forum, lu, relu la doc ainsi que le man de cron, je ne comprends pas pourquoi mon script ne marche pas dans cron !

Bien entendu mon script a été "chmodé"  > sudo chmod +x sauvegarde
Les chemins complets des commandes sont renseignées.
En doublon je rajoute même le PATH des exécutables
J'ai même rajouté "DISPLAY" dans mon sudo crontab-e (alors que normalement c'est inutile puisque je ne fait appel à aucune instance graphique)
Lorsque je rajoute un log avec ma commande dans cron, mon log est vide.


voici de quoi peut-être m'aider....

la fin de mon crontab (édité avec sudo crontab -e,) avec redémarrage de mon ordi pour être sûr que le cron prenne effet à l'heure désirée + montage des disques 1 et 2 (voir condition dans mon script)

59 20 * * * DISPLAY=0.0 /home/omnimax/"Ubuntu One"/SCRIPT/sauvegarde

mon script, parfaitement fonctionnel dans un terminal:

#!/bin/bash
export LANG="fr_BE.UTF-8"
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

#VARIABLES EMPLACEMENTS
SOURCE="/media/$USER/disque1/"
DESTINATION="/media/$USER/disque2/"
LOG="/home/$USER/"Ubuntu\ One"/log/logsauvegarde"
REP="/home/$USER/"Ubuntu\ One"/ok"

#VARIABLES MAILS
ADRESSEMAIL="omnimax@gmail.com"

#VARIABLES MESSAGES
TXTMAILOK="sauvegarde effectuée avec succès"
TXTMAILPROBL="problème dans ma sauvegarde, consultez les logs"

#VERIFICATION SI DISQUES MONTES
if [ -d "$DESTINATION" ] || [ -d "$SOURCE" ]; then
	/usr/bin/rsync -rltgoDv "$SOURCE" "$DESTINATION" > "$LOG" && touch "$REP"

	if [ -e "$REP" ]; then
		/bin/echo "$TXTMAILOK" | /usr/bin/msmtp "$ADRESSEMAIL"
	else   
		/bin/echo "$TXTMAILPROBL" | /usr/bin/msmtp "$ADRESSEMAIL"
		/bin/echo "$LOG" | /usr/bin/msmtp "$ADRESSEMAIL"
	/bin/rm "$REP"		
	fi
fi

Merci pour vos éclaircissements.

Dernière modification par omnimax (Le 09/08/2013, à 07:16)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#2 Le 06/08/2013, à 20:20

Shanx

Re : RESOLU toujours et encore cron :(

Salut

Dans ton script, il y a la variable $USER. Or,cron n’est pas forcément lancé avec le même utilisateur, donc cette variable peut ne pas donner le résultat escompté. Pour le vérifier simplement, tu peux entre une nouvelle ligne dans ton cron avec la commande suivante :

echo $USER >> /home/toi/retour

Le nom d’utilisateur utilisé par cron sera dans le fichier retour

Sinon, pas besoin de redémarrer à chaque fois. Tu peux faire des tests en mettant la minute suivante (ou deux minutes, pour avoir de la marge), dès que tu fermes ton éditeur cron se met à jour. wink

EDIT : en fait, c’est même mieux de simplement ajouter echo$USER quelque part dans ton script, et ensuite de rajouter >> /home/toi/retour dans le crontab. Ça permettra d’être sûr qu’il n’y a pas de problème avec les utilisateurs (root, pas root, etc.) dans ton script. D’ailleurs, ça pourrait aussi donner un message d’erreur, ce qui est toujours bon à prendre.

Dernière modification par Shanx (Le 06/08/2013, à 20:33)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#3 Le 06/08/2013, à 21:02

omnimax

Re : RESOLU toujours et encore cron :(

Salut Shanx, et merci de m'avoir répondu smile

Bon, en faisant dans mon crontab

echo $USER >> /home/omnimax/retour
cat /home/omnimax/retour >>> résultat vide 

Par contre en indiquant en clair mon nom d'utilisateur dans le script, cron s'effectue à moité sad
j'explique : il fait bien la synchronisation mais la partie où il doit m'envoyer un mail ne fonctionne pas (alors que via un terminal > sans soucis)

petite parenthèse futile: Je comprends pas trop la logique de Paul Vixie qui a écrit cron, en gros rien n'est reconnu il faut tout préciser > variables de base, chemins complets des exécutables...vite un gars qui nous recode un cron2 en comblant ces lacunes, cela éviterait des utilisateurs comme moi qui pollue le forum avec ces problèmes de cron sad

Dernière modification par omnimax (Le 06/08/2013, à 21:02)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#4 Le 07/08/2013, à 00:21

Postmortem

Re : RESOLU toujours et encore cron :(

Salut,
Ton script, dans le Terminal, tu le lances en étant connecté avec ton utilisateur sans mettre sudo devant ?
Si c'est le cas, il faut le renseigner dans la crontab de ton user et non celle de root.
Si tu fais sudo crontab -e, tu arrives dans la crontab de root.
Il faut faire crontab -e, ainsi c'est la crontab de ton user que tu mettras à jour.

Dernière modification par Postmortem (Le 07/08/2013, à 00:25)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 07/08/2013, à 06:08

omnimax

Re : RESOLU toujours et encore cron :(

Merci postmortem,

Pour garder $USER dans mon script, ta méthode a l.air logique.

Le soucis vient maintenant de msmtp et je crois que l'erreur vient du fait que j.ai mal configuré mail-utils. Un idée pour reconfigurer le tout et arriver à l'écran de config dans le Shell. J.ai déjà fait sudo apg-get purge mail-utils et puis réinstaller mais sans retrouver ce panneau de config.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#6 Le 07/08/2013, à 07:02

tiramiseb

Re : RESOLU toujours et encore cron :(

Salut,

Pour ta toute dernière question, c'est peut-être la commande dpkg-reconfigure que tu cherches.

Hors ligne

#7 Le 07/08/2013, à 07:12

Shanx

Re : RESOLU toujours et encore cron :(

Mais d‘après ce fil (daté de 2008 cependant, ça a peut-être changé), c’est parfois un peu compliqué…


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#8 Le 07/08/2013, à 07:54

omnimax

Re : RESOLU toujours et encore cron :(

ça y est j'ai trouvé pour reconfigurer mailutils

sudo dpkg-reconfigure postfix

Je teste ce soir via mon script et je tiens au jus .

bonne journée à vous deux.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#9 Le 07/08/2013, à 07:55

tiramiseb

Re : RESOLU toujours et encore cron :(

postfix n'est pas mailutils...

Hors ligne

#10 Le 07/08/2013, à 08:07

Shanx

Re : RESOLU toujours et encore cron :(

Mais il est parfois nécessaire pour faire fonctionner mailutils (cf. le fil dont j’ai donné le lien).


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#11 Le 07/08/2013, à 08:07

omnimax

Re : RESOLU toujours et encore cron :(

oui, mais je retrouve la même invite de configuration que j'avais eue en installant mail-utils et par mégarde j'avais coché la mauvaise option.

Pour info Postmortem

echo $USER > /home/example

me donne rien du tout dans example, en le lancant dans crontab -e (sans sudo)

Dernière modification par omnimax (Le 07/08/2013, à 08:07)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#12 Le 07/08/2013, à 08:09

Shanx

Re : RESOLU toujours et encore cron :(

En même temps, tu n’as pas les droits d’écriture dans /home, donc /home/example ne peut pas être créé.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#13 Le 07/08/2013, à 09:31

Postmortem

Re : RESOLU toujours et encore cron :(

Je plussoie Shanx.
Essaie plutôt :

echo "$USER" > "$HOME/example"

Édit :
La variable $USER n'est peut-être pas connue dans l'environnement de cron. Il faudrait alors la remplacer par $LOGNAME.

Dernière modification par Postmortem (Le 07/08/2013, à 09:42)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#14 Le 07/08/2013, à 11:26

omnimax

Re : RESOLU toujours et encore cron :(

Sorry les gars pour aller plus vite j'avais mis /home/example mais j'avais bien testé avec /home/omnimax/example

Par contre, avec ce que tu m'as donné cela fonctionne smile

echo "$LOGNAME" > "$HOME/example"

Dernière modification par omnimax (Le 07/08/2013, à 11:27)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#15 Le 07/08/2013, à 11:29

Shanx

Re : RESOLU toujours et encore cron :(

Ben du coup, ça répond à la première partie de ta question : tu devrais mettre $LOGNAME dans ton script.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#16 Le 07/08/2013, à 12:17

tiramiseb

Re : RESOLU toujours et encore cron :(

Salut,

On peut voir là les variables d'environnement disponibles avec cron :
http://www.linux-france.org/article/man … tab-5.html

(par contre la page de man sur le système Ubuntu n'est pas identique, elle ne donne pas le détail des variables d'environnement).

Hors ligne

#17 Le 08/08/2013, à 06:52

omnimax

Re : RESOLU toujours et encore cron :(

Salut tout le monde,

je teste.....sur ma virtualbox tout est ok, par contre sur mon poste de travail cela ne marche pas...

Et je ne sais plus les options que j'avais mises en postfix sur ma Vbox sad

Je vais essayer sur un autre poste pour voir.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#18 Le 08/08/2013, à 06:57

tiramiseb

Re : RESOLU toujours et encore cron :(

Eh bien compare la configuration de Postfix sur les deux machines... Si tu as encore accès à la machine virtuelle, c'est facile...

Hors ligne

#19 Le 08/08/2013, à 08:17

omnimax

Re : RESOLU toujours et encore cron :(

oui je pensais que ce serait simple aussi mais ou se situe la config de Postfix ?

j'ai bien fait locate postfix, mais je ne trouve rien de concluant.

sur la doc on voit le fichier /etc/postfix/main.cf mais chez moi il est vide ?


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#20 Le 08/08/2013, à 08:37

tiramiseb

Re : RESOLU toujours et encore cron :(

mais ou se situe la config de Postfix ?

/etc/postfix/main.cf

sur la doc on voit le fichier /etc/postfix/main.cf mais chez moi il est vide ?

Dans ce cas Postfix ne peut pas fonctionner...

Hors ligne

#21 Le 08/08/2013, à 08:46

omnimax

Re : RESOLU toujours et encore cron :(

Bizarre, sur ma Vbox > mailtutils et postfix sont installés et /etc/postfix/main.cf est vide.

Et pourant mon cron avec smtp marche nickel.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#22 Le 08/08/2013, à 08:55

tiramiseb

Re : RESOLU toujours et encore cron :(

Es-tu sûr que ça utilise Postfix ?

Que donnent les commandes suivantes ?

sudo netstat -tlnp
postconf -n
postconf

Hors ligne

#23 Le 08/08/2013, à 09:36

omnimax

Re : RESOLU toujours et encore cron :(

1. tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      830/smbd        
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1268/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      803/cupsd       
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      830/smbd        
tcp6       0      0 :::139                  :::*                    LISTEN      830/smbd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      803/cupsd       
tcp6       0      0 :::445                  :::*                    LISTEN      830/smbd     
2.postconf: fatal: open /etc/postfix/main.cf: No such file or directory
3. open /etc/postfix/main.cf: No such file or directory

14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#24 Le 08/08/2013, à 09:53

tiramiseb

Re : RESOLU toujours et encore cron :(

Postfix ne tourne pas sur ta machine.
Tes e-mails sortants ne passent pas par Postfix, je ne vois pas d'autre explication.

Hors ligne

#25 Le 08/08/2013, à 10:24

omnimax

Re : RESOLU toujours et encore cron :(

mhmmm, merci quand même.

tu ne sais pas où est l'erreur alors ?
Pour résumer msmtp fonctionne en script shell et lorsqu'il est invoqué par cron il ne fonctionne pas.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne