• [^] # Re: Tout simplement!

    Posté par . En réponse au message Cron, j'en ai marre. Évalué à 6.

    C'est pas mon problème, mais si ça peut t'aider, voici quelques éléments de réponse qui te seront, je l'espère sincérement, utiles :
    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.