Forum Linux.débutant probleme rc.d

Posté par  .
Étiquettes :
0
9
mar.
2007
Bonjour a tous,
Je viens vous demander un petit coup de main. Je suis tout nouveau sur ce forum, et j'ai un problème, qui va peut-être vous paraitre tout simple. Voila, je viens d'installer une débian sarge sur un pc pour en faire un serveur web. Comme il fonctionne parfaitement en local, je souhaite le rendre disponible sur le net. Je me suis donc inscrits sur dyndns.fr afin de reserver un nom de domaine . Ensuite, comme indiqué sur le site dyndns.fr, j'ai téléchargé le dyndnsagent (ddclient ne marche pas avec dyndns.fr), sous la forme d'une archive dyn.tar. J'ai décompressé le tar sous la racine du disque dur, et j'ai lancé la commande ./install. Probleme, c'est que des lignes d'erreurs apparaissent lors de l'installation, du type /etc/rc.d/init.d/dyn.rc fichier introuvable. Je suis rentré dans le repertoire etc, et en effet pas de repertoire rc.d. Par contre, j'ai bien un repertoire init.d directement sous etc. J'espère que j'ai été suffisamment clair. Donc , ou est ce que j'ai fais une bétise, ou alors faut-il créer un repertoire rc.d.
Si quelqu'un a une petite idée, je remercie tous

Wiki
  • # fedora

    Posté par  . Évalué à 3.

    je pense que ce /etc/rc.d/init.d/ est typique à Fedora (et sans doute des dérivées), une autre distribution linux.

    Je te conseille de modifier dans le fichier d'installation (install) les références de /etc/rc.d/init.d/ vers /etc/init.d/ . Cela ne fonctionnera de toute façon pas si tu créés ce dossier rc.d sous debian.
    Par contre pour démarrer ce service automatiquement, cela sera sans doute différent également que sous fedora. Regarde du côté de l'utilitaire update-rc.d
    Il y a des exemples si tu tapes la commande man update-rc.d

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Utiliser mon script maison \o/

      Posté par  (site web personnel) . Évalué à 2.

      Utiliser mon script maison peux t'aider :
      #! /usr/bin/php
      <?php
      //Define the domain
      define('DOMAIN', 'members.dyndns.org');

      //Define the path
      define('PATH', '/nic/update');

      //Update file
      define('FILE', '/tmp/.ipupdate.dyndns');

      //Check if lock file is present
      if (is_file(FILE.'.lock'))
      die('Last time: '.file_get_contents(FILE.'.lock'));

      //Define key and identification
      define('USERINFO', base64_encode('login:password'));
      define('USERAGENT', 'rapsys_php_ipupdate/0.3rc4 rapsys@free.fr');
      define('DATAINFO', '?system=dyndns&hostname=exemple.com&wildcard=ON');

      //Check file function
      function checkfile()
      {
      //Check if file exist
      if(is_file(FILE))
      //Return the file content
      return file_get_contents(FILE);
      else
      //Return localhost to force update
      return '127.0.0.1';
      }

      //Checkip function
      function checkip()
      {
      //The socks
      $sock = @fsockopen('checkip.dyndns.org', 80, $errno, $errstr);

      //Exit if socket is in bad state
      if (!$sock) die("Update impossible: $errstr ($errno)\n");

      fputs($sock, "GET / HTTP/1.1\r\n");
      fputs($sock, "Host: checkip.dyndns.org\r\n");
      fputs($sock, "User-Agent: ".USERAGENT."\r\n");
      fputs($sock, "\r\n");

      //Get the header
      $headers = "";
      while ($str = trim(fgets($sock, 4096)))
      $headers .= "$str\n";

      //Get the body (ip)
      $remote = "";
      while (!feof($sock))
      $remote .= fgets($sock, 4096);

      //Close the socket
      fclose($sock);

      //Store result for investigate
      $fd = fopen(FILE.'.ip', 'w');
      fwrite($fd, $headers.$remote);
      fclose($fd);

      //Return the answer
      return preg_replace('/.*Current IP Address: ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/s', '\1', $remote);
      }

      if (checkip() != checkfile())
      {
      //Open a socket
      $sock = @fsockopen('ssl://'.DOMAIN, 443, $errno, $errstr, 30);

      //Exit if socket is in bad state
      if (!$sock) die("Update impossible dyndns: $errstr ($errno)\n");

      //Forge the request
      fputs($sock, "GET ".PATH.DATAINFO." HTTP/1.1\r\n");
      fputs($sock, "Host: ".DOMAIN."\r\n");
      fputs($sock, "Authorization: Basic ".USERINFO."\r\n");
      fputs($sock, "User-Agent: ".USERAGENT."\r\n");
      fputs($sock, "\r\n");

      //Get the header
      $headers = "";
      while ($str = trim(fgets($sock, 4096)))
      $headers .= "$str\n";

      //Get the body (ip)
      $remote = "";
      while (!feof($sock))
      $remote .= fgets($sock, 4096);

      //Close the socket
      fclose($sock);

      //Store result for invertigate
      $fd = fopen(FILE.'.update', 'w');
      fwrite($fd, $headers.$remote);
      fclose($fd);

      //Get the return code
      $retcode = preg_replace('/(?:.*\n)([a-z]+).*/s', '\1', $remote);

      //Touch lock file if something goes wrong
      if ($retcode != 'good' && $retcode != 'nochg')
      {
      $fd = fopen(FILE.'.lock', 'w');
      date_default_timezone_set('UTC');
      fwrite($fd, date("l d F Y G:i:s").': Update impossible dyndns: '.$remote);
      fclose($fd);
      echo date("l d F Y G:i:s").': Update impossible dyndns: '.$remote;
      }

      //Update FILE
      $fd = fopen(FILE, 'w');
      fwrite($fd, preg_replace('/.*(?:good|nochg) ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/s', '\1', $remote));
      fclose($fd);
      }
      ?>

      Pense a copier ce code sous :
      /usr/bin/ipupdate.dyndns
      Puis mettre les droits suivants :
      chown ton_user:root /usr/bin/ipupdate.dyndns
      chmod 750 /usr/bin/ipupdate.dyndns

      Puis ajouter un fichier cron qui va bien :
      08,38 * * * * rapsys [ -x /usr/bin/php ] && [ -x /usr/bin/ipupdate.dyndns ] && /usr/bin/ipupdate.dyndns

      Pense a changer login:password et le domaine example.com en ton domaine.dyndns.org ;)

      ps : si tu veux faire un don paypal sur mon email hésite pas, j'ai pas mal bossé pour l'avoir fonctionnel...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.