Problème : exec, crontab

Bonjour,

je développe une application web sous windows avec un serveur UNIX.
J'ai besoin d'utiliser des crons pour mettre à jour régulièrement des tables me permettant de faire des indicateurs.
Je n'arrive pas à faire fonctionner la commande

exec("crontab -l", $output).

Je ne sais pas pourquoi et je tourne sur internet depuis 5h en espérant trouver une réponse mais rien pour le moment.

PS : j'arrive très bien à utiliser les commandes simples du genre exec("ls -l");

En espérant une réponse de votre part, merci d'avance

Skycer666

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    hello
    crontab -l n'affiche rien, même pas "no crontab for <user>" ?
    1. et bien non, rien du tout car je fais une sortie standard . Voila le bout de code :


      <?php
      exec('crontab -l', $oldCrontab) or die('Pas Marché');
      for($i = 0; $i < count($oldCrontab);$i++)
      {
      echo $oldCrontab[$i]."<br />";
      }
      ?>


      Merci d'avoir déja répondu ;)
      1. Je reviens à la charge car je n'ai toujours pas trouvé de solution à mon problème
        Pourrait-il avoir une question de droit ? d'utilisateur ?

        J'ai réussi à rediriger mon erreur et voila ce que j'obtiens dans mon fichier :

        You (nobody) are not allowed to use this program (crontab)
        See crontab(1) for more information
        1. Contributeur
          il faut autoriser l'utilisateur nobody à utiliser cron . voir les fichiers /etc/cron.allow et /etc/cron.deny
          1. Comment écrire dans mon fichier cron.allow à partir de la commande exec ??

            j'arrive à lire le fichier avec cat /etc/cron.allow mais pas cron.deny ou j'ai une permission refusée.
            1. Contributeur
              il faut être root, essaye si tu as les droits avec sudo
              1. Mais si je fais

                exec('sudo root cat /etc/cron.deny > cron/tmp.txt 2>&1')

                dans mon fichier tmp.txt il y a la demande du password.
                Comment faire pour me loguer en root ?
                Comment faire pour modifier un fichier ?

                PS : rappel, je n'ai pas d'accès direct à une console, je dois tout faire par exec().

                merci de ton aide dubcek
                1. Contributeur
                  le password ne peut pas être lu dans un fichier. Pour donner les droits sudo il faut modifier des fichiers en tant que root, je ne sais pas si ca peut se faire par des exec.
                  pour sudo voir là http://doc.ubuntu-fr.org/sudo
                  mais quand il demande le mot de passe, tu peux le saisir ?
                  si oui il faut juste faire la commande qui modifie /etc/cron.allow:
                  sudo echo nobody>> /etc/cron.allow
                  1. Salut Dubcek, bon pour résoudre mon problème j'ai utilisé Putty qui m'a permis de me connecter à distance à mon serveur à partir d'une console. J'ai donc pu créer mon crontab plus facilement.

                    merci encore