At : script ne se lance pas
Fermé
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
-
28 sept. 2008 à 20:37
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 29 sept. 2008 à 16:45
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 29 sept. 2008 à 16:45
A voir également:
- At : script ne se lance pas
- World at arms - Télécharger - Rôle RPG
- This is the mail system at host ✓ - Forum Mail
- Function at 0x python ✓ - Forum Python
- Gta vice city unhandled exception c00005 at address 00652f80 - Forum Jeux vidéo
- Disc at once - Forum Gravure
5 réponses
Non2
Messages postés
5103
Date d'inscription
mercredi 19 décembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2015
757
29 sept. 2008 à 01:12
29 sept. 2008 à 01:12
Bonjour,
Après une petite recherche, il serait peut-être utile de vérifier si l'utilisateur est autorisé à l'utiliser.
extrait du man at :
Le superutilisateur peut toujours employer ces commandes. Pour les autres utilisateurs, les permissions sont déterminées par les fichiers /etc/at.allow et /etc/at.deny.
Si le fichier /etc/at.allow existe, seuls les utilisateurs dont les noms sont mentionnés dans ce fichier peuvent utiliser at.
Si /etc/at.allow n'existe pas, at vérifie si /etc/at.deny existe, et tous les utilisateurs non mentionnés dans ce fichier ont alors le droit d'invoquer at.
Si aucun de ces deux fichiers n'existe, seul le superutilisateur a le droit d'appeler at.
Un fichier /etc/at.deny vide signifie que tous les utilisateurs ont le droit d'appeler ces commandes ; c'est la configuration par défaut.
Si ce n'est pas ça, il faudra attendre la réponse de quelqu'un d'autre, j'y connais trop peu pour aller plus loin..
Après une petite recherche, il serait peut-être utile de vérifier si l'utilisateur est autorisé à l'utiliser.
extrait du man at :
Le superutilisateur peut toujours employer ces commandes. Pour les autres utilisateurs, les permissions sont déterminées par les fichiers /etc/at.allow et /etc/at.deny.
Si le fichier /etc/at.allow existe, seuls les utilisateurs dont les noms sont mentionnés dans ce fichier peuvent utiliser at.
Si /etc/at.allow n'existe pas, at vérifie si /etc/at.deny existe, et tous les utilisateurs non mentionnés dans ce fichier ont alors le droit d'invoquer at.
Si aucun de ces deux fichiers n'existe, seul le superutilisateur a le droit d'appeler at.
Un fichier /etc/at.deny vide signifie que tous les utilisateurs ont le droit d'appeler ces commandes ; c'est la configuration par défaut.
Si ce n'est pas ça, il faudra attendre la réponse de quelqu'un d'autre, j'y connais trop peu pour aller plus loin..
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
29 sept. 2008 à 09:43
29 sept. 2008 à 09:43
Salut et merci,
je n'avais pas pensé du tout à ça, voici donc le contenu du fichier at.deny (il n'y a pas de fichier at.allow)
c'est bizarre, je m'attendais à voir des noms d'utilisateurs... Aparemment il faudrait que je mette mon nom d'utilisateur dans un fichier at.allow ?
Voici d'autre part ce qui me gêne dans le déroulement de ce script.
Grossomodo, un premier script 1.sh de 72 lignes effectue une série de tests sur des fichiers, il crée ensuite un répertoire nommé mkdir ~/Chemin/0REP, puis passe à une boucle (while read line). Dans cette boucle il y a une condition qui si elle est satisfaite lance un deuxième script 2.sh. C'est dans ce script que at intervient et planifie une action "now + 20 minutes, qui va lancer W.sh comme dit plus haut, et indépendante du script initial 1.sh). Tant que les conditions sont satisfaites, la boucle se répète et autant de jobs peuvent être créés par At. Quand il n'y a plus les conditions, on sort de la boucle, et le répertoire ~/Chemin/0REP est supprimé.
Mais quand je regarde le output de At, le message d'erreur est le suivant :
sh: line 90: cd: Chemin/0REP: Aucun fichier ou dossier de ce type
Execution directory inaccessible
-> D'une part, aucun des scripts intervenant dans ce mécanisme ne dépasse les 72 lignes (c'est le plus gros, 1.sh)
-> d'autre part, le seul moment dans lequel il est question d'aller dans ce répertoire Chemin/0REP, c'est au début du script 1.sh, ce qui ne devrait plus rien avoir avec ce qu'est censé faire le script lancé par At.
On dirait qu'il revient au script 1.sh
Une idée ?
je n'avais pas pensé du tout à ça, voici donc le contenu du fichier at.deny (il n'y a pas de fichier at.allow)
/etc # cat at.deny alias backup bin daemon ftp games gnats guest irc lp mail man nobody operator proxy qmaild qmaill qmailp qmailq qmailr qmails sync sys www-data
c'est bizarre, je m'attendais à voir des noms d'utilisateurs... Aparemment il faudrait que je mette mon nom d'utilisateur dans un fichier at.allow ?
Voici d'autre part ce qui me gêne dans le déroulement de ce script.
Grossomodo, un premier script 1.sh de 72 lignes effectue une série de tests sur des fichiers, il crée ensuite un répertoire nommé mkdir ~/Chemin/0REP, puis passe à une boucle (while read line). Dans cette boucle il y a une condition qui si elle est satisfaite lance un deuxième script 2.sh. C'est dans ce script que at intervient et planifie une action "now + 20 minutes, qui va lancer W.sh comme dit plus haut, et indépendante du script initial 1.sh). Tant que les conditions sont satisfaites, la boucle se répète et autant de jobs peuvent être créés par At. Quand il n'y a plus les conditions, on sort de la boucle, et le répertoire ~/Chemin/0REP est supprimé.
Mais quand je regarde le output de At, le message d'erreur est le suivant :
sh: line 90: cd: Chemin/0REP: Aucun fichier ou dossier de ce type
Execution directory inaccessible
-> D'une part, aucun des scripts intervenant dans ce mécanisme ne dépasse les 72 lignes (c'est le plus gros, 1.sh)
-> d'autre part, le seul moment dans lequel il est question d'aller dans ce répertoire Chemin/0REP, c'est au début du script 1.sh, ce qui ne devrait plus rien avoir avec ce qu'est censé faire le script lancé par At.
On dirait qu'il revient au script 1.sh
Une idée ?
Non2
Messages postés
5103
Date d'inscription
mercredi 19 décembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2015
757
29 sept. 2008 à 10:05
29 sept. 2008 à 10:05
Bonjour,
Si j'en crois le man, oui, le nom d'utiisateur doit être ajouté.
sh: line 90: cd: Chemin/0REP: Aucun fichier ou dossier de ce type : il semble pourtant qu'il fasse appel à la commande cd. Le script 01 ne recommence-t'il pas au départ en sortant de script 02 ? Il faudrait suivre le déroulement pas à pas pour savoir pourquoi il tente d'accéder au répertoire après sa suppression.
Quant au numéro de ligne, on peut supposer que l'interpréteur considère l'ensemble des scripts comme un seul ensemble. A moins qu'il ne fasse en interne une "traduction" vers un langage de base (appel de fonction ou d'interruption en langage d'assemblage, par exemple).
Pour ça et le reste, je ne sais pas, il faudra l'aide de quelqu'un plus compétant que moi en programmation. Peut-être poster un topic spécifique aux scripts dans le forum programmation.
Si j'en crois le man, oui, le nom d'utiisateur doit être ajouté.
sh: line 90: cd: Chemin/0REP: Aucun fichier ou dossier de ce type : il semble pourtant qu'il fasse appel à la commande cd. Le script 01 ne recommence-t'il pas au départ en sortant de script 02 ? Il faudrait suivre le déroulement pas à pas pour savoir pourquoi il tente d'accéder au répertoire après sa suppression.
Quant au numéro de ligne, on peut supposer que l'interpréteur considère l'ensemble des scripts comme un seul ensemble. A moins qu'il ne fasse en interne une "traduction" vers un langage de base (appel de fonction ou d'interruption en langage d'assemblage, par exemple).
Pour ça et le reste, je ne sais pas, il faudra l'aide de quelqu'un plus compétant que moi en programmation. Peut-être poster un topic spécifique aux scripts dans le forum programmation.
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
29 sept. 2008 à 10:41
29 sept. 2008 à 10:41
Le script 01 ne recommence-t'il pas au départ en sortant de script 02
c'est la seule explication possible puisque l'entrée dans ce répertoire n'apparait que deux fois dans l'ensemble des scripts (uniquement dans 1.sh, au début de la boucle), mais absolument pas dans W.sh ni dans aucun autre script
Il y a des éléments un peu confidentiels dans ces scripts alors voici le shéma (j'ai épuré un peu) :
1.sh mkdir ~/Chemin/0REP if grep "http" 0rep.txt then ( while read line do ( NoPost=$(echo $line | grep -o '\-[0-9]*\/' | sed 's/\-//g;s/\///g') cd ~/Chemin/0REP wget -ct inf -O $NoPost.html "$line" sed -n '/^.*erfervierh"/,/^.*<\/td\>.*$/p' ~/Chemin/0REP/$NoPost.html | sed 's/ons'enfout/g' > $NoPost.txt if egrep -io "(blabla|blibli|bloublou)" $NoPost.txt then ( echo $line >> ~/Chemin/Journal.txt egrep -io "(blabla|blibli|bloublou)" $NoPost.txt >> ~/Chemin/Journal.txt mkdir ~/Chemin/Reponse/$NoPost mv ~/Chemin/0REP/$NoPost.* ~/Chemin/Reponse/$NoPost echo `md5sum ~/Chemin/Reponse/$NoPost/$NoPost.txt | cut -d" " -f1` > ~/Chemin/Reponse/$NoPost/md5.txt recode ISO-8859-1..UTF-8 ~/Chemin/Reponse/$NoPost/$NoPost.html echo $(grep -o -m1 "blabla" ~/Chemin/Reponse/$NoPost/$NoPost.html | sed 's/blibli//g') > ~/Chemin/Reponse/$NoPost/h.txt echo "$line" > ~/Chemin/Reponse/$NoPost/URL.txt echo $NoPost > ~/Chemin/Reponse/$NoPost/REP.txt cat ~/Chemin/Reponse/Job_Reponse.txt > ~/Chemin/Reponse/$NoPost/$NoPost.sh chmod +x ~/Chemin/Reponse/$NoPost/$NoPost.sh export NoPost export Message export line export ComptNoRep ~/Chemin/Reponse/$NoPost/$NoPost.sh export NoPost cd ~/Chemin ./BMH.sh ComptNoRep=$(( $ComptNoRep + 1 )) ) fi ) done < 0rep.txt ) else echo "blablabla" >> ~/Chemin/Journal.txt fi if [ -e ~/Chemin/0REP ] then rm -rf ~/Chemin/0REP fi
ensuite, voici donc NoPost.sh (au-dessus je disais que c'était 2.sh, c'est donc lui qui lance At
echo $line > ~/Chemin/Reponse/URL$ComptNoRep.txt echo $NoPost > ~/Chemin/Reponse/REP$ComptNoRep.txt at -f ~/Chemin/Reponse/Wget_URL.sh now + 20 minutes
et enfin, Wget_URL.sh
#!/bin/bash cd ~/Chemin/Reponse URL=$(cat ~/Chemin/Reponse/URL0.txt) REP=$(cat ~/Chemin/Reponse/REP0.txt) cd ~/Chemin/Reponse/$REP wget -ct inf $URL cd ~/Chemin/Reponse rm REP0.txt rm URL0.txt if [ -e REP*.txt ] then ( for i in REP*; do numberREP=$(grep -o ':digit:' <<<$i); mv ${i} ${i/$numberREP/$(($numberREP -1))}; done for i in URL*; do numberURL=$(grep -o ':digit:' <<<$i); mv ${i} ${i/$numberURL/$(($numberURL -1))}; done ) fi
c'est ce dernier qui n'est pas lancé par At et pour lequel on obtient l'erreur
sh: line 90: cd: Chemin/0REP: Aucun fichier ou dossier de ce type Execution directory inaccessible
On dirait donc qu'il revient ici dans 1.sh
while read line do ( NoPost=$(echo $line | grep -o '\-[0-9]*\/' | sed 's/\-//g;s/\///g') cd ~/Chemin/0REP
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
29 sept. 2008 à 16:45
29 sept. 2008 à 16:45
Solution temporaire trouvée : exclure le job de la boucle while read line, et également supprimer la création du script qui lance ce job
Vraiment je ne comprends pas pourquoi il retourne dans la boucle du script d'origine, si qqu'un a une idée... histoire de pas mourir idiot surtout ;)
Vraiment je ne comprends pas pourquoi il retourne dans la boucle du script d'origine, si qqu'un a une idée... histoire de pas mourir idiot surtout ;)