Bonjour a tous et bonne année
alors voila, j'ai encore ce probleme de cron
1 * * * * su - root -c ? /root/backup.php
que dois je mettre a la place du ?
parce que meme avec les indications deja données auparavant je ne sait toujours pas comment ecrire ce qu'il manque
merci d'avance de votre aide
# man crontab
Posté par jerome (site web personnel) . Évalué à 3.
Si tu veux que root fasse quelque chose en cron, alors rentre ça dans son crontab à lui.
Tu peux aussi utiliser sudo (pas su) dans ton crontab utilisateur.
# Tout simplement!
Posté par asciii . Évalué à 1.
Voici un des crontab root que j'utilise (debian sid)
* * * * * test -e /var/run/ppp0.pid || (poff -a; pon)
0 4 * * * /etc/init.d/ntpdate restart > /dev/null
Puis sur un autre serveur (un crontab de sauvegarde):
0 0 * * * /usr/bin/rsync -vaz --max-delete=100 --delete-after --delete "root@XXXXXXXX" /mnt/telesave/pool/XXXX
Le prob. ne viendrais pas de ton script par hazard!
As tu bien mis "#!/usr/bin/php" en première ligne + ton script en éxécutable.
[^] # Re: Tout simplement!
Posté par Decrouy Damien . Évalué à 1.
J'aimerais savoir en quel type de fichier executable?
parce que la moj script est en .php d'ou backup.php (*.?)
parce quand le cron est execute il me met erreur a toute les lignes du php, ou sinon s'il fallait inserer dans la commande cron une valeur pour specifier que le script est en php.
Quand tu dis en premiere ligne c'est dans quel fichier?(backup.php???)
[^] # Re: Tout simplement!
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
Oui.
Essaye déjà de lancer le script a la main, sans cron.
[^] # Re: Tout simplement!
Posté par Gyro Gearllose . Évalué à 6.
1) Sous Unix/Linux, peu importe l'extention du fichier. Tu peux très bien appeler un fichier exécutable titi, tata.sh, truc.doc ou même machin.bat. Le système s'en fout et ne se base pas là dessus pour décider si un fichier est exécutable ou non. Il se base sur les attributs du fichier, visibles sous forme d'une suite de rwx- précédant le nom du fichier lors de la sortie de la commande ls -l monfichier. Les attributs fonctionnent ainsi : le premier caractère est - pour un fichier normal, d pour un répertoire (on ne va retenir que les valeurs courantes). Après, ça marche par groupe de 3 : rwx pour lecture (read), w pour écriture (write) et x pour exécuter (execute). Premier groupe de 3 : l'utilisateur, deuxième groupe de 3 : le groupe auquel appartient l'utilisateur, dernier groupe : les autres.
2) Aucun problème, cf. ci-dessus.
3) pour rendre un script php exécutable, il faut faire deux choses :
A) Rendre le fichier exécutable. Pour ce faire, dans une console, tu fais :
$ chmod u+x backup.php
De ce fait, l'utilisateur a qui appartient le fichier backup.php pourra le lancer soit en se plaçant dans le répertoire contenant le fichier backup.php, soit en tapant toute la commante /chemin/backup.php
B) Si c'est un script (c'est le cas de ton backup.php), il faut indiquer au système qui va interpréter ce qui est dans le fichier backup.php. Pour ça, y'a pas 36 façons : en première ligne du fichier backup.php, tu ajoutes un commentaire spécial qui va demander au shell d'exécuter l'interpréteur php, puis de lui expédier la suite du fichier backup.php. C'est donc bien dans ce fichier (backup.php) qu'il faut ajouter la première ligne citée dans les commentaires ci-dessus. Voilà qui répond à ton 4) !
Sinon, si tu ne veux pas modifier ton script backup.php avec cette ligne, il faut à ce moment là, non pas rendre ton script exécutable comme décrit ci-dessus, mais remplacer ton ? de ton cron par la commande php complète, c'est à dire que :
1 * * * * su - root -c ? /root/backup.php
devient
1 * * * * su - root -c "/usr/local/bin/php /root/backup.php"
Il faudra évidement adapter /usr/local/bin/php en fonction de l'endroit où est installé php sur ton pc.
Un simple
$type php
te renseignera sur la question.
Voilà, j'espère que ce sera bon pour toi et que j'ai répondu à ta question/tes questions.
[^] # Re: Tout simplement!
Posté par Pooly (site web personnel) . Évalué à 2.
#!/usr/bin/php
un truc comme ça sur ta première ligne ?
sinon remplate /root/backup.php
par php /root/backup.php
[^] # Re: Tout simplement!
Posté par Decrouy Damien . Évalué à 1.
j'aimerais savoir en quel type de fichier fallait mettre le script?
en .bat???
sinon il ne faut pas rajouter une valuer pour specifier que cron doit effectuer sur un fichier php
sinon quand tu parle d'inscrire une ligne?? ou doit elle etre inscrite???
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.