Lechatmatou Posté(e) le 24 août 2009 Auteur Partager Posté(e) le 24 août 2009 [quote name='cricx' date='23 ao 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 25 août 2009 Partager Posté(e) le 25 août 2009 Merci pour ces 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 25 août 2009 Auteur Partager Posté(e) le 25 août 2009 [quote name='cricx' date='25 ao 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 25 août 2009 Partager Posté(e) le 25 août 2009 L'utilisateur d 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 25 août 2009 Auteur Partager Posté(e) le 25 août 2009 [quote name='cricx' date='25 ao 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 26 août 2009 Partager Posté(e) le 26 août 2009 OK, alors comment consid 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 26 août 2009 Auteur Partager Posté(e) le 26 août 2009 [quote name='cricx' date='26 ao 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 26 août 2009 Partager Posté(e) le 26 août 2009 wich = Retour au prompt, c'est tout ! L'ex 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 1 septembre 2009 Auteur Partager Posté(e) le 1 septembre 2009 Petit bilan : Je ne passe pas par root 1) Transfert depuis mon DS109J vers le DS107 distant : rsync -avz /volume1/Transfic/Test-fichier.JPG user@IP:/volume1/Transfic user_IP's password: Could not chdir to home directory /var/services/homes/user: No such file or directory sending incremental file list Test-fichier.JPG sent 2380667 bytes received 31 bytes 29211.02 bytes/sec total size is 2393407 speedup is 1.01 Le message d'anomalie à mon sens est du au serveur hôte car les utilisateurs sont définis dans etc/passwd comme suit : /var/services/homes/user:/bin/csh J'ai remplacé /bin/csh (interprêteur non dispo sur cette machine ?) par bin/sh Le répertoire /var/services ne comporte pas homes ... pourquoi ? Quelles conséquences de rester dans cette situation ? 2) Transfert depuis le DS107 distant vers mon DS109j : Sur DS109j (serveur donc) J'ai remplacé dans le fichier etc/passwd pour l'utilisateur sbin/nologin par bin/ash Transfert normalement effectué avec la même syntaxe mais avec adresse dyndns. La suite : Mise en place d'une solution nocturne ne requiérant pas l'entrée du mot de passe sur demande interactive. Après avoir testé le paramètre --password-file=FICHIER ne passe pas il faut être en deamon ...??? j'espère avoir été clair ..... JP 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 1 septembre 2009 Partager Posté(e) le 1 septembre 2009 Petit bilan : Je ne passe pas par root 1) Transfert depuis mon DS109J vers le DS107 distant : Le message d'anomalie 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 2 septembre 2009 Auteur Partager Posté(e) le 2 septembre 2009 il faut que tu utilises une paire de cl 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 6 septembre 2009 Auteur Partager Posté(e) le 6 septembre 2009 Bonsoir, Il me reste un souci : J'ai fait un petit sript comme indique par Mike93 le 25 juin. Pour que ce script fonctionne je fais SH /chemin complet/fichier_script, mais il ne d 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zimko Posté(e) le 6 septembre 2009 Partager Posté(e) le 6 septembre 2009 Pour lancer un script en tache de fond et reprendre la main sans le ctrl d rajoute un '&' a la fin de la commande ex : sh mon_script.sh & 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 6 septembre 2009 Auteur Partager Posté(e) le 6 septembre 2009 Pour lancer un script en tache de fond et reprendre la main sans le ctrl d rajoute un '&' a la fin de la commande ex : sh mon_script.sh & Merci. J'ai ajouté le & : je reprends bien la main mais le script ne se déroule pas, (sauf si CTL + d) alors j'ai ajouté un fichier log : vide ... Si je déroule la commande top je vois bien sshd et top avec le user mais dès que j'entre q pour en sortir il me dit qu'il a arrêté mon script !! Donc j'ai étudié un peu celà (je débute) : Ce script est à l'emplacement /var/services/homes/user/bin, Dans le etc/passwd le PATH user est bin/ash ( commande cat /etc/passwd | cut -d: -f1,7 | grep user) Donc le fichier script devrait commencer par #!/bin/ash. Enfin la commande : sh chemin_de_l'exécutable me permet de dérouler le script avec CTL+d, avec le & à la suite je ne peux qu'interrompre quelque chose qui ne démarre pas ... Qu'attend-t-il ? Ou est l'erreur ? PS :avec #!/bin/sh en début de script c'est pareil ... JP 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 6 septembre 2009 Partager Posté(e) le 6 septembre 2009 Merci. J'ai ajout 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 6 septembre 2009 Auteur Partager Posté(e) le 6 septembre 2009 Si ton script ne te rend la man qu'après un ctrl-d, ça veut dire qu'il attend une entrée de données de l'entrée standard (le clavier). Donne le contenu de ton script si tu veux plus d'infos, Test par script Contenu du script : #!/bin/ash # ============================================ # tx1=`grep -i "Bytes transmis" $fic_net | awk '{print $3}'` DATEDeb=$(date +%d-%m-%Y" "%Hh%M) # Transfert du repertoire rsync -avz /volume1/Transfic/ userdistant@adresseIP/volume1/jp/Transfic # ecriture du fichier log DATEFin=$(date +%d-%m-%Y" "%Hh%M) tx2=`grep -i "Bytes transmis" $fic_net | awk '{print $3}'` TX=`echo $tx1 | awk '{ print '$tx2' - $1}'` echo "Debut de la sauvegarde : $DATEDeb - Terminee : $DATEFin - Octets Transmis : $TX" >> /volume1/Transfic/transfic${DATEFin}.log C'est celui indiqué dans ce fil, il n'a pas grande importance en soi, simplement il donne les heures de début, de fin. Il m' a interpelé dans la mesure ou il permet de savoir si la procédure s'est déroulée jusqu'au bout, et puis c'est un exercice .. J'ai d'ailleurs une question : comment se rend-t-on compte s'il y a eu un incident ? En cas d'incident la reprise je suppose doit se faire. J'ai regardé les nombreuses options de rsync ... J'ai hésité d'utiliser le paramètre qui donne la possibilité de mettre le fichier en cours de transmission dans un répertoire temp. Si je neutralise les lignes tx1 et tx2 celà fonctionne..pourtant dans un autre topic la recherche de zones de fic_net est abordée .. Autre test : Si je mets le fichier crontab comme suit : #minute hour mday month wday who command 10 0 * * * user rsync -avz /volume1/Transfic/ userdistant@adresseIP/volume1/jp/Transfic > /volume1/Transfic/logcron.log Celà crée le fichier log à vide mais rien ne se passe ... j'ai regardé dans ce forum la procédure d'arrêt/relance de crontab (S04crond.sh stop/start) alors que manuellement c'est bon ! JP 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 7 septembre 2009 Partager Posté(e) le 7 septembre 2009 Test par script Contenu du script : #!/bin/ash # ============================================ # tx1=`grep -i "Bytes transmis" $fic_net | awk '{print $3}'` DATEDeb=$(date +%d-%m-%Y" "%Hh%M) # Transfert du repertoire rsync -avz /volume1/Transfic/ userdistant@adresseIP/volume1/jp/Transfic # ecriture du fichier log DATEFin=$(date +%d-%m-%Y" "%Hh%M) tx2=`grep -i "Bytes transmis" $fic_net | awk '{print $3}'` TX=`echo $tx1 | awk '{ print '$tx2' - $1}'` echo "Debut de la sauvegarde : $DATEDeb - Terminee : $DATEFin - Octets Transmis : $TX" >> /volume1/Transfic/transfic${DATEFin}.log ta variable $fic_net correspond 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 7 septembre 2009 Auteur Partager Posté(e) le 7 septembre 2009 Donc intialise ta variable et 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 8 septembre 2009 Partager Posté(e) le 8 septembre 2009 Le but de ce script selon son auteur devait être d'aller chercher le volume d'octets transmis, pour que celà fonctionne j'ai initialisé la variable FIC_NET à '/proc/net/sk98lin/eth0', fichier statistique de la carte coupleur. Le coupleur récupérant tout ce n'est surement pas bon, je doute qu'il y ait ce genre de stats pour un script déterminé ? Enfin dans le principe celà permet au script de fonctionner, je verrais plus tard. #!/bin/ash # ============================================ # FIC_NET="/proc/net/sk98lin/eth0" tx1=`grep "Transmitted bytes" $FIC_NET | awk '{print $3}'` DATEDeb=$(date +%d-%m-%Y" "%Hh%M) # Transfert du repertoire rsync -avz /volume1/Transfic/ user@IP:/volume1/jp/Transfic > /volume1/Transfic/Transfic${DATEDeb}.log # ecriture du fichier log DATEFin=$(date +%d-%m-%Y" "%Hh%M) tx2=`grep "Transmitted bytes" $FIC_NET | awk '{print $3}'` TX=`echo $tx1 | awk '{print '$tx2' - $tx1}' `echo "Debut de la sauvegarde : $DATEDeb - Terminee : $DATEFin - Octets Transmis : $TX" > /volume1/Transfic/Transfic2${DATEDeb}.log Mon but : - Comment avoir les heures de début, de fin sur un log ? peux-tu préciser ta question ? si c'est juste écrire les dates de début et de fin dans le log, tu peux faire : DATEDeb=$(date +%d-%m-%Y" "%Hh%M) echo $DATEDeb >/volume1/Transfic/fichierlog.log ta commande rsync ici >>/volume1/Transfic/fichierlog.log DATEFin=$(date +%d-%m-%Y" "%Hh%M) echo $DATEFin >>/volume1/Transfic/fichierlog.log Situation: En lancement manuel la procédure sh Transfic.ash lancée à partir du répertoire /var/services/homes/user/bin (de même qu'à partir du rep racine en spécifiant le chemin complet) fonctionne, les logs sont remplis. Si je mets le fichier crontab comme suit : #minute hour mday month wday who command 10 0 * * * user sh /var/services/homes/user/bin/Transfic.ash elle se déclenche mais il n'y a pas de transfert car les fichiers logs sont générés : celui de rsync est vide, l'autre a ses compteurs à zéro. Je m'en rend compte car dans les noms de fichiers il y a date et heure. JP es-tu bien sûr que user a les droits pour lancer ce script ? as-tu bien mis le >> pour ajouter au fichier de log (> crée un nouveau fichier, donc seule la première ligne d'écriture dans le log dont avoir >, les autres doivent avoir >>) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 8 septembre 2009 Auteur Partager Posté(e) le 8 septembre 2009 Ok le sript a évolué dans ce sens, de plus j'ai ajouté la sortie du code retour. #!/bin/ash # ============================================ # DATEDeb=$(date +%d-%m-%Y" "%Hh%M) echo $DATEDeb > /volume1/Transfic/Transfic.log # Transfert du repertoire rsync -avz /volume1/Transfic/ user@adresseip:/volume1/jp/Transfic >>/volume1/Transfic/Transfic.log # tests codes retour status=$? if [ $status -ne 0 ] then echo 'code retour = ' $status >>/volume1/Transfic/Transfic.log else echo 'Transferts reussis' >>/volume1/Transfic/Transfic.log fi # ecriture du fichier log DATEFin=$(date +%d-%m-%Y" "%Hh%M) echo $DATEFin >>/volume1/Transfic/Transfic.log 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredlime Posté(e) le 9 septembre 2009 Partager Posté(e) le 9 septembre 2009 Je récapitule : Sous utilisateur autre que root le script fonctionne en lancement manuel sous PuTTY, code retour 0. par contre si j'entre son appel dans etc/crontab toujours pour cet utilisateur autre que root la procédure se lance et j'ai un code retour à 255, le log est créé à vide Question : Que faut-il faire pour qu'un utilisateur autre que root soit autorisé à utiliser crontab ? Enfin : pourquoi etc/crontab est-il vide le lendemain (je précise avoir éteint le serveur entre temps) Bonjour, Il serait souhaitable d'utiliser le compte root pour exécuter ton script, cela t'éviderait pas mal de problème. Notamment le problème avec les variables d'environnement ou les droits. Dans ce sens, utilise 'rsync' avec son chemin. Je ne sais plus ou il est exactement. Et comme je n'ai pas accès a mon SYNO Tu peux le retrouver avec la commande :which rsync Utilise donc ce chemin renvoyé : /chemin/rsync -avz /volume1/Transfic/ .........etc Ensuite, si ta commande disparait du fichier 'crontab' après un reboot, c'est qu'il y a un erreur de syntaxe. Utilise bien des tabulations entre les champs, et non des espaces. Voila, dernière remarque, tu compresses cette sauvegarde avec le paramètre 'z', Je ne pense pas que ce soit bien nécessaire. En tout cas, tu obtiendrais de meilleur performance sans cette option. A+ Fred. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 9 septembre 2009 Partager Posté(e) le 9 septembre 2009 Bonjour, Il serait souhaitable d'utiliser le compte root pour ex 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 9 septembre 2009 Auteur Partager Posté(e) le 9 septembre 2009 Le chemin de rsync est : usr/syno/bin/ Je l'ai ajouté devant rsync dans le script : sans effet, j'ai un code retour de rsync à 255 ? De ce que j'ai pu voir ce n'est pas une valeur attendue .. de rsync ! J'en suis toujours au fait qu'en lançant manuellement le script à partir du répertoire /var/services/homes/user/bin c'est OK. Mais avec crontab : #minute hour mday month wday who command 55 0 * * * user sh /var/services/homes/noisy/bin/Transfic.sh les fichiers logs sont créés comme contenu les variables du script mais pas le 'journal' rsync et j'ai ce code retour .... donc ce script est bien appelé et deroule quelque chose,pourquoi ne pas vouloir de rsync ? De plus je crois que ma syntaxe est bonne puisque crontab fait quelque chose, non ? Je crois effectivement qu'il y a des soucis de path dès lors que l'on veut travailler avec crontab + user autre que root. ... comment les traquer ? second test : J'ai spécifié root dans crontab : même punition ... J'ai ajouté un journal Cron.log dans crontab : il est généré à vide ... Lancement manuel à partir de root : le mot de passe est demandé, celà me parait normal car on sort de l'environnement double clef de l'utilisateur, or le but est de transmettre la nuit.... Troisième test : J'ai recopié le script dans usr/bin, répertoire de mise à dispo des scripts utilisateurs qui je crois n'est pas affecté par une mise à niveau système (ex : DMS 2.2) .... et bien entendu modifié crontab : #minute hour mday month wday who command 47 9 * * * user sh /usr/bin/Transfic.sh > Cron.log Le journal Transfic.log du script est généré mais sans le code retour de rsync ...il ne doit pas pouvoir l'exécuter ? alors qu'en lancement manuel en session user : sh /usr/bin/Transfic.sh à partir de la racine c'est tout bon .. en session root il me demande le mot de passe (normal) Question : comment définir un environnement dans crontab ? JP 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 10 septembre 2009 Partager Posté(e) le 10 septembre 2009 Le chemin de rsync est : usr/syno/bin/ attention ! c'est /usr/syno/bin/ Je l'ai ajout 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lechatmatou Posté(e) le 10 septembre 2009 Auteur Partager Posté(e) le 10 septembre 2009 attention ! c'est /usr/syno/bin/ C'est la cas (faute de frappe) désolé. crontab lance ses commandes dans son propre environnement ! C'est bien là le problème. Au sujet du code 255 j'ai pu lire : "Actually, the 255 is the complement of -1, which is the UNIX return code you get when some library you are trying to load cannot be found. " Question qui peut paraitre élémentaire : faut-il un fichier crontab par utilisateur ? celà existe a priori pour des système UNIX mais sur les synos ? Si oui comment la créer et la gérer par rapport à son utilisateur propriétaire ? A mettre dans /var/services/homes/user ? JP 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.