56 votes

Comment exécuter un script, en fonction de la connexion internet.

Je monte souvent un disque distant en utilisant sshfs. J'aimerais que ce montage soit automatique. Cependant, si je le monte dans mon .bashrc ou mes scripts de démarrage, le montage échoue souvent parce que ma connexion Internet sans fil n'a pas encore été établie.

Quelqu'un connaît-il un moyen facile d'exécuter un script bash à chaque fois que la connexion est établie, ou de monter automatiquement un disque sshfs ?

66voto

dedunumax Points 8088

Ajoutez votre script à /etc/network/if-up.d/ . Nommez votre script sans l'extension '.sh'.

Aussi après avoir ajouté script exécuter chmod +x /etc/network/if-up.d/yourscriptname pour donner la permission nécessaire.

Assurez-vous que l'interface réseau (par exemple wlan0 ou eth0) qui doit déclencher votre script lorsqu'elle est allumée est mentionnée dans le fichier /etc/network/interfaces .

25voto

ignite Points 8446

Note de l'éditeur : Cuttlefish n'a pas été mis à jour depuis 2012 et ne figure dans aucun dépôt Ubuntu actuel.

Ubuntu 12.04

  • Installer Seiche : Un outil simple, qui réalise des réflexes sur votre ordinateur en exécutant des actions lorsque des événements spécifiques sont déclenchés.
  • Ouvrez Cuttlefish et cliquez sur New .

    Step-1

    • Donnez-lui un nom, et changez Activé par un stimulus sur ON.
    • Cliquez sur Stimulus sélectionnez la catégorie Réseau et le type Se connecter au WLAN . Cliquez sur OK.

    Step 2

    • Vous pouvez également sélectionner le SSID du réseau sans fil et vous avez la possibilité de le vérifier ou non au démarrage.

    Step 3

    • Vous devez maintenant spécifier une réaction. Allez à Réaction et cliquez sur ajouter. Sélectionnez Applications de la catégorie et Démarrer l'application (en mode avancé) de type.

    Step 4

    • Maintenant, spécifiez le script que vous voulez exécuter dans l'option exécutable. Vous pouvez même passer des paramètres au script.

    Step-5

    • Et c'est tout ! Assurez-vous également d'ajouter Cuttlefish dans les applications de démarrage. Allez à Editer > Préférences et activez l'option de démarrage automatique.

    Step-6

2voto

RBell Points 301

Je vais répondre à cette partie de la question du PO : "J'adorerais avoir cette monture automatiquement"

Mon outil préféré pour monter automatiquement des partages réseau est autofs : https://help.ubuntu.com/community/Autofs

AutoFS est mon outil de choix pour monter mon NAS - pour tous mes ordinateurs portables et stations de travail.

" autofs est un programme permettant de monter automatiquement des répertoires en fonction des besoins. Les montages automatiques ne sont montés que lorsqu'ils sont accédés, et sont démontés après une période d'inactivité. De ce fait, le montage automatique des partages NFS/Samba conserve la bande passante et offre de meilleures performances globales comparé aux montages statiques via fstab. "

2voto

En ce qui me concerne, le /etc/network/if-up.d/ La solution n'a pas fonctionné pour moi car lorsque j'ai ajouté à /etc/network/interfaces les suivantes :

auto wlp58s0
iface wlp58s0 inet dhcp
post-up /home/augustin/Config/myscript.sh

Le Wifi démarre après le redémarrage.

Mais après une certaine lutte, de ce lien Ce qui a fonctionné, c'est d'ajouter le script à la liste de contrôle de l'entreprise. /etc/NetworkManager/dispatcher.d/ sous la forme 90myscript.sh donde 90 est le niveau de priorité du script et a la forme suivante :

#!/bin/bash

IF=$1
STATUS=$2

if [ "$IF" == "wlp58s0" ]
then
    case "$2" in
        up)
        # interface is up
        ;;
        down)
        # interface will be down
        ;;
        pre-up)
        # interface will be up
        ;;
        post-down)
        # interface is down
        ;;
        *)
        ;;
    esac
fi

Je suppose qu'il y a des problèmes entre ceux qui contrôlent la configuration du réseau au niveau du système et parfois la configuration par défaut. network est laissé derrière celui du répartiteur.

Aussi, pour ceux qui voudraient - comme moi - essayer d'avoir un lien symbolique vers le script (pour stocker le fichier dans un meilleur emplacement), malheureusement cela n'a pas fonctionné pour moi.

J'espère que cela vous aidera !

1voto

Revanth Kumar Points 141

La meilleure façon, simple et facile, serait d'ajouter une commande up à l'interface sur laquelle vous voulez travailler.

Les interfaces se trouvent dans le répertoire "/etc/network/" sous le nom de fichier "interfaces".

iface elan0 inet manual
    up filename.sh

Cela ajoutera la commande up à elan0. Faites de même avec l'interface sur laquelle vous voulez travailler. N'oubliez pas d'indenter d'un espace de tabulation.

Assurez-vous que vous donnez les droits d'exécution au fichier.

sudo chmod 755 filename.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X