Cron

WRInaute discret
Bonjour !
Je suis depuis deja un bon bout de temps ce forum.. et la et bien je pose une question :lol:
Voila... mon probleme est j'en suis sur tres facile a résoudre.. mais la ... ca fait depuis 17h30 que je suis dessus ... impossible !! :cry:
Voila , je suis chez 1and1 ... et je voudrais crer une tache CRON
pour cela apres m'etre connecté en SSH avec Putty ....
j'entre :
crontab - u LOGIN DU COMPTE SHH cront1.cron

cront1.cron a :
29 22 * * * php /kunden/homepages/0/d1396773XXX/htdocs/maj.php >>tmp/log_df4.txt

Je précise au passage que tmp/log_df4.txt sera retiré des que ca marchera :lol:

Avant toute question :
-J'ai bien effacer a chaque fois la table avec crontab -r quand je voulais faire un nouveau fichier ...
-J'ai également tester avec php -f mais ... ca ne marche pas ... il ne crée pas le fichier de sortie ... alors qu'avec "php" seul ... il le crée ... mais il est vide :cry:
- J'ai bien entendu essayé au départ de mettre l'adresse http:// .... mais ne marche pas non plus ...
- Et j'ai aussi essayé sans la sortie ... mais rien ne marche non plus....

Voila .. si vous avez une réponse à ca ... je vous serai grandement reconnaissant ...
 
WRInaute impliqué
Ta commande elle fonctionne déjà en dehors du cron ?

Peux-etre une piste avec lynx si il est installé tu peux faire
29 22 * * * lynx http://www.ledomaine.com/maj.php >>tmp/log_df4.txt

Attention je l'ai mis comme cela mais en faisant a man lynx il doit y avoir des parametres pour faire un dump du resultat dans le fichier.

A+
 
WRInaute impliqué
J'avais pas compris cela en lisant ton post,
en fait c'est une histoire de droit je pense qu'il te faut mettre le chemin complet vers l'endroit ou tu veux que le fichier se crée :

29 22 * * * php /kunden/homepages/0/d1396773XXX/htdocs/maj.php >>/kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt

Un truc de ce genre.

Le cron s'execute avec tes droits à partir de je ne sais où et du coups tmp on sais pas non plus ou c'est alors en forçant le chemin tu seras chez toi et ça devrait marcher non ?
 
WRInaute impliqué
Essai de creer le fichier a la main exemple
cat titi >/kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt
fais un chmod 777 /kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt

Ensuite test ta commande complete avant de la mettre en cron

Une autre piste:
Si tu as le droit de faire des petits shell tu peux faire aussi comme cela
Crée un fichier go dedans tu mets
Code:
#/bin/sh
cd /kunden/homepages/0/d1396773XXX/htdocs/
php maj.php >>/kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt

Idem tu fais ensuite
chmod 777 go

et dans le cron
9 22 * * * sh go

Et enfin peut-etre faut-il forcer le chemin de php en mode cron il n'est peut-etre pas dans le path

A+
 
WRInaute discret
J'ai essayé la deuxieme solution ... et rien ne marche ...

mais dans la deuxieme... qu'entends tu par "Ensuite test ta commande complete avant de la mettre en cron " ??

Merci encore :wink:
 
WRInaute discret
Code:
cat titi >/kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt

Rien ne marche :?:


Le cat y marche ou pas :?:

Parce que si tu ne peux pas faire un cat sur ce path cela veut dire que tu ne peux pas créer de fichier là ou te veux le faire :!:

Le cron n'a rien a voir là. Il faut avoir la réponse à cette question.
 
WRInaute discret
Et bien ... je suis vraiment poisseux !!!
"cat: titi: No such file or directory" ...
juste peut etre que ca va vous éclairer ....
lorsque je fais : whereis crond ...
la réponse est : "crond: "
C'est tout ...

Donc voila... merci tout de meme de votre aidfe.
 
WRInaute impliqué
benjiman a dit:
J'ai essayé la deuxieme solution ... et rien ne marche ...

mais dans la deuxieme... qu'entends tu par "Ensuite test ta commande complete avant de la mettre en cron " ??

Merci encore :wink:

Ce que j'entend pas là c'est qu'avant d'essayer de mettre un commande ou de lancer un script shell depuis le cron il faut être sur qu'il fonctionne quelquesoit l'endroit où l'on se trouve.

Pour en revenir a
Code:
cat "titi" >/kunden/homepages/0/d1396773XXX/htdocs/log_df4.txt

Cette commande doit te créer un fichier log_df4.txt avec titi dedans si cela ne fonctionne pas il te faut déjà résoudre cela. Là c'est rapport à ton hebergeur, tu n'as peut-etre les droits d'écrire qu'a un seul endroit dans ces cas là ce sera a cet endroit qu'il te faudra mettre ton fichier log.

A+
 
WRInaute discret
et bien ... ce que je vois, c'est que des fichiers .bash_history se crée a la racine du site ... donc ...
Je vais essayé avec les guillemets ...
Sinon, le truc, c'est que la je donne le chemin sur le serveur meme ... peut etre qu'il ne faut pas entrer ce chemin la non ?
 
WRInaute discret
Bon ... alors j'ai essayé un autre truc :
cat file1.txt > test_cat.txt ...
et la ... et bien ça marche !! le test_cat.txt se créé bien a la racine du serveur, en copiant file1.txt ...
Donc .. peut etre que dans mon cron, il faut justement que je mette le nom direct du script (à l'occurrence ici : maj.php)
non ?
 
WRInaute discret
OK, tu as les droits pour créer le fichier.

Maintenant exécute au clavier ta commande (si c'est le code qui suit)

Code:
php /kunden/homepages/0/d1396773XXX/htdocs/maj.php

Dis si ca marche

Ensuite il faut savoir ou se trouve le l'interpréteur php sur ton serveur

Tu prend un shell et tu tappe whereis php

et tu va récupérer un chemin du genre /usr/bin/php.

Note ce que tu récupère et dit le nous. Ensuite on mettra tout les path en absolu et ca devrait aller.
 
WRInaute discret
bon alors ...
en faisant :
php /kunden/homepages/0/d139677373/htdocs/maj_glob.php (oui prenait ca au lieu de celui avec les XXX c'est plus chiant a changer a chaque fois lol)
j'ai le résultat comme quoi c'est un fichier PHP/4.4.1
mais si je fais :php maj_glob.php
le resultat est le meme ...
pour le php.. j'en ai plusieur.. je prend le .ini, ou .old ou le /php ?
 
WRInaute occasionnel
tu fais 'which php', et ça devrait t'indiquer /usr/local/bin/php

c'est ça qu'il faut indiquer au début de ton cron au lieu de php tout court.

ta ligne à ajouter dans le crontab devrait donc ressembler à :

Code:
29 22 * * * /usr/local/bin/php /kunden/homepages/0/d1396773XXX/htdocs/maj.php >> /tmp/log_df4.txt
 
WRInaute discret
AHHH
ca ne marche pas...
j'ai bien le meme résultat que toi quand je fais which php ....
et j'ai donc tapé :

09 12 * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php>OKCRONNNN.txt

Mais rien ne fais ... le fichier OKCRONNNN.txt ne s'est pas créé! :(
 
WRInaute discret
Autre chose que je viens de voir


Met des espaces entre maj_glob.php>OKCRONNNN.txt

comme ca maj_glob.php > OKCRONNNN.txt

l'espace est le séparateur d'argument pour le shell
 
WRInaute discret
Bon ba voila ...
alors:
/usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php>okcr44.txt
MARCHE .... il n'y a pas de probleme

34 12 * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php>okcr44.txt
NE MARCHE PAS !

Vraiment j'ai pas de pot !! :(
 
WRInaute occasionnel
a un moment ou à un autre, faudra bien que tu te fasse à l'idée que cron n'agit pas dans le même répertoire que toi, et qu'il faut lui indiquer /tmp/okcr44.txt au lieu de juste okcr44.txt :)
 
WRInaute discret
MERCI MERCI MERCI !!!
Voila ce qui a marché :
49 12 * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php > okcr446.txt

Petite derniere question ...
Comment faire pour que ce script ce lance tous les jours, toutes les heures et tous les mois et tous les ans ? lol
 
WRInaute discret
Ok, mais bon tu ferais mieux quand même de mettre tout en absulu. ChezThierry il te le dit aussi.

Ensuite pour le lancer tous les jours... tu peux faire un petit 'man cron' ou 'man conrtab' et lire la doc quand même.

Sur mon debian je trouve les infos en faisant 'man 5 crontab'

Je sais pas sur ta machine. Les Unix ne sont pas clonés.
 
WRInaute occasionnel
Toutes les heures, disons à xx:25, ça donne
Code:
25 * * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php > okcr446.txt
Deux fois par heure, à xx:05 et xx:35, ça donnerait :

Code:
05,35 * * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj_glob.php > okcr446.txt
 
WRInaute discret
Oui merci beaucoup ... de toute les maniere... j'enleve la sortie ... car il faut qu'il s'éxécute chaque heure ... donc bon, mais c'est bon ca me suffit sans sortie... enfin j'espere que ca marche sans la sortie :lol:

Enfin en tout cas, mille merci !
Sinon, étant donné que je n'y met connait pas du tout en LINUX ... je voudrais bien apprendre des ptits trucs parce que vraiment j'aime beaucoup ....
 
WRInaute discret
Re Bonjour ...
et bien la aujourd'hui ... c'est pire .. la derniere fois, tout marché ... et maintenant ...

38 22 * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj.php > okcr4453836.txt

NE MARCHE PAS !

Avez vous une idée ? lunix a une dent contre moi ... alors que moi je commancait à l'apprecier mdr
 
WRInaute discret
Si tu veux le lancer une fois par jour :
0 7 * * *

Tous les jours à 7h00.


//EDIT Voilà pour t'expliquer à quoi correspondent les lignes :
#minute hour mday month wday who command#
 
WRInaute occasionnel
benjiman a dit:
Re Bonjour ...
et bien la aujourd'hui ... c'est pire .. la derniere fois, tout marché ... et maintenant ...

38 22 * * * /usr/local/bin/php /kunden/homepages/0/d139677373/htdocs/maj.php > okcr4453836.txt

NE MARCHE PAS !

Avez vous une idée ? lunix a une dent contre moi ... alors que moi je commancait à l'apprecier mdr

Fais-moi donc plaisir, remplace okcr4453836.txt par :
/kunden/homepages/0/d139677373/htdocs/okcr4453836.txt
ou
/tmp/okcr4453836.txt

juste pour voir...
 
WRInaute discret
oui, ca je savais lol ... avant de poster.. je recherche quand meme :wink: enfin... la ca remarche ... mais je n'ai pas compris pourquoi ca n'a pas marché avant ...
J'ai jsute rajouter une sortie mais bon :cry:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut