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 10/06/2013, à 09:27

toteuf

problème cron et session fermé

Bonjour,

J'ai cherché pas mal de temps un retour sur un problème similaire, mais je n'en trouve pas.

Voici mon problème, j'ai un serveur ubuntu sur un VM (virtualbox). J'ai un script permettant de faire un backup et de zipper le backup dans un rep.
Tous les scripts sont fonctionnels.

Cron exécute bien le script quand je suis connecté avec l'utilisateur mais pas quand la session est fermé (or c'est mon but).

Voulant que la tâche s'exécute lorsque la session est fermé, j'ai donc modifié le cron du root (sudo crontab -e) des fois que sa règle le problème (j'ai mis les scripts sont en 777 pour les tests). Mais même avec ma session ouverte, le script n'est jamais lancé.

Je n'ai pas encore regardé si cela venait du service cron qui se coupe lorsqu'aucune session n'est ouverte ou autre.

Bref, j'aurai besoin de vos lumières.

Merci

Hors ligne

#2 Le 10/06/2013, à 10:04

credenhill

Re : problème cron et session fermé

hello
capturer les messages d'erreur du cron :  * * * * * commande > /tmp/log 2>&1

Hors ligne

#3 Le 10/06/2013, à 11:49

tiramiseb

Re : problème cron et session fermé

Salut,

à tout hasard, le répertoire dans lequel mettre les backups est-il monté manuellement lorsque tu te connectes sur ton PC ?
(autre partition locale absente de fstab, volume distant smb, ce genre de choses)

Hors ligne

#4 Le 10/06/2013, à 12:30

toteuf

Re : problème cron et session fermé

Bonjour,

@Credenhill : je vais tester cela plus tard. Et reviendrais te donner le résultat.

@tiramiseb : le backup se met dans le home de l'utilisateur pour le moment, il sert de "temp" pour mes test. A terme, il y aura un flux ouvert sur un NAS servant pour le stockage.

Cdt

Hors ligne

#5 Le 10/06/2013, à 13:27

waca

Re : problème cron et session fermé

Je suis dans la même quête que toi, et j'ai trouvé ceci :

Crontab pour le système
Le système Linux lui-même utilise la planification Cron, ces tâches sont définis dans des Crontabs particulière
    fichier /etc/crontab
    fichiers présents sous /etc/cron.d
Ces crontabs ont une zone supplémentaire (en position 6) qui permet de spécifier le user qui doit lancer le script.
17 * * * *    root cd / && run-parts --report /etc/cron.hourly

Mais j'ai pas testé et avant de faire quoique ce soit, je voudrai l'avis de ceusses qui savent si c'est correct !

Merci.

Waca

Hors ligne

#6 Le 10/06/2013, à 13:30

tiramiseb

Re : problème cron et session fermé

waca : c'est juste une approche différente.

Tu as d'un côté les crontab utilisateur, édités avec la commande "crontab -e".
Tu as d'un autre côté les crontab système, placés dans /etc/crontab ou dans des fichiers sous /etc/cron.d ; dans ce second cas, il faut intercaler le nom d'utilisateur sous lequel exécuter la commande, comme c'est indiqué.

Mais ce n'est pas une solution à un problème qui est probablement tout autre.

Hors ligne

#7 Le 10/06/2013, à 13:31

tiramiseb

Re : problème cron et session fermé

toteuf :

Je reviens également sur la phrase suivante :

Voulant que la tâche s'exécute lorsque la session est fermé, j'ai donc modifié le cron du root (sudo crontab -e)

Exécuter un truc en tant que root n'est jamais une solution.
Au mieux c'est un palliatif quand on s'en fout de faire des choses crades.

Il n'y a pas de raison que ça marche mieux avec root qu'avec un utilisateur quelconque.


À tout hasard encore une fois, n'aurais-tu pas par hasard demandé de chiffrer ton répertoire utilisateur ?

Hors ligne

#8 Le 10/06/2013, à 13:42

toteuf

Re : problème cron et session fermé

tiramiseb a écrit :

Exécuter un truc en tant que root n'est jamais une solution.

À tout hasard encore une fois, n'aurais-tu pas par hasard demandé de chiffrer ton répertoire utilisateur ?

Je suis bien d'accord. Mais ceci n'était qu'un test (pour éviter que quelqu'un me dise à tu tester ça. big_smile.
J'ai également tester de nommer l'utilisateur juste avant l'appel à mon script. De la même manière que j'ai modifié la syntaxe pour lancer la commande du style ./chemin/code ou sh /chemin/code ....

Par contre, il me semble que oui, mon répertoire était chiffrer (si c'est le choix par défaut lorsqu'on installe).
J'ai du mal à cerner pourquoi cela aurait un impact. est-ce que le répertoire serait chiffrer à chaque déconnexion?

Mais cela me fait 2 pistes à explorer.

Hors ligne

#9 Le 10/06/2013, à 13:44

tiramiseb

Re : problème cron et session fermé

Par contre, il me semble que oui, mon répertoire était chiffrer (si c'est le choix par défaut lorsqu'on installe).

Ce n'est pas le choix par défaut mais il suffit de cocher une case pour l'activer...

J'ai du mal à cerner pourquoi cela aurait un impact. est-ce que le répertoire serait chiffrer à chaque déconnexion?

Tes données sont tout le temps chiffrées, et seul toi connais la clé pour le déchiffer (c'est, en l'occurrence, le mot de passe de ton compte utilisateur).

Lorsque tu es connecté, un système se met en place pour chiffrer au vol les données que tu écris sur le disque et déchiffrer au vol celles que tu lis.
Lorsque tu n'es pas connecté, ce système n'est pas en place, vu que le système ne connaît pas ton mot de passe (et heureusement encore qu'il ne le connaît pas).

Pour vérifier cela, que donne la commande suivante lorsque tu es connecté ?

mount

Hors ligne

#10 Le 10/06/2013, à 19:33

toteuf

Re : problème cron et session fermé

En effet le répertoire qui contenait mes scripts sont cryptés.

Pour cela j'ai déplacé mes scripts dans un répertoire.

Le problème n'a pas changé. Quand je suis connecté pas d'erreur. Par contre quand je suis déconnecté j'ai cette erreur avec la méthode de "credenhill" (redirection code retour du script)

sh : 0 : Can't open /home/script/sauvegarde.sh

J'ai testé à la main les commandes suivantes pour lancer le script, et je les ai toutes mis dans le cron sans succès :
sh /home/script/sauvegarde.sh
./home/script/sauvegarde.sh
/home/script/sauvegarde.sh

Bizarrement, si je met echo "toto" cela fonctionne bien.

le shell serait endormi lorsqu'aucun utilisateur n'est connecté (ksh, bsh etc...)?

Hors ligne

#11 Le 10/06/2013, à 19:44

tiramiseb

Re : problème cron et session fermé

le shell serait endormi lorsqu'aucun utilisateur n'est connecté (ksh, bsh etc...)?

Aucun shell ne tourne si aucun utilisateur n'a une session de type terminal d'ouverte.
C'est cron qui lance un shell si nécessaire.
Autrement dit : mauvaise voie de réflexion.

Que donnent les commandes suivantes ?

mount
ls -ld /home/script /home/script/sauvegarde.sh

Hors ligne

#12 Le 10/06/2013, à 20:45

toteuf

Re : problème cron et session fermé

$ mount
/dev/mapper/Machine-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
/dev/sda1 on /boot type ext2 (rw)
/home/moi/.Private on /home/moi type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_......)

pour l'autre

~$ ls -ld /home/script/sauvegarde.sh
-rwxrwxrwx 1 moi moi 1388 juin  10 20:12 /home/script/sauvegarde.sh 

Hors ligne

#13 Le 10/06/2013, à 21:07

tiramiseb

Re : problème cron et session fermé

Et peux-tu montrer le contenu de ton crontab ?

Hors ligne

#14 Le 10/06/2013, à 22:09

toteuf

Re : problème cron et session fermé

Ma copine est en train de me dire que je vais passé pour un gros c... sur le forum. Elle me surnomme boulettor (ca va me suivre ça).

Mon cron appel le script sauvegade et pas sauvegarde.... forcément il le trouve pas le cron....

Je sors de 2 semaines de Dev et avec ce problème je perd 1 journée pour une faute de mot.

Merci en tous cas pour toutes vos aides (puisque c'est tous de même ta demande qui me permet de mettre en lumière ma faute).

ps : on peut pas faire comme si mon message n'avait jamais existé. tongue. On a qu'a dire que c'était un test de la réactivité des forumeurs :-D

Hors ligne