PDA

Visualizza la versione completa : Aiuto Script in Bash


PEA
16-09-2004, 18:20
Ciao ho bisogno di un aiuto per fare uno script in bash.
Mi serve in pratica per collegare il modem Adsl ad internet automaticamente quando accendo il comp. I comandi che deve eseguire all'avvio sono i seguenti.
-- /usr/local/sbin/eaglectrl -d
-- Aspettare una decina di secondi (il modem deve diventare operativo)
-- /usr/local/sbin/startadsl
-- Aspettare un altra decina di secondi affinchè ppp modifichi dei file
-- mv /etc/resolv.conf.saved.by.pppd.ppp0 /etc/resolv.conf
-- cp /etc/resolv.conf /etc/ppp/resolv.conf

A me non da troppo fastidio eseguire quei comandi ma a mio fratello si.

Tutti i comandi devono essere dati come root.


Qualche consiglio ?

Ikitt
16-09-2004, 18:38
Originariamente inviato da PEA
Ciao ho bisogno di un aiuto per fare uno script in bash.
Mi serve in pratica per collegare il modem Adsl ad internet automaticamente quando accendo il comp. I comandi che deve eseguire all'avvio sono i seguenti.
-- /usr/local/sbin/eaglectrl -d
-- Aspettare una decina di secondi (il modem deve diventare operativo)
-- /usr/local/sbin/startadsl
-- Aspettare un altra decina di secondi affinchè ppp modifichi dei file
-- mv /etc/resolv.conf.saved.by.pppd.ppp0 /etc/resolv.conf
-- cp /etc/resolv.conf /etc/ppp/resolv.conf
[...]
Tutti i comandi devono essere dati come root.

Letteralmente verrebbe:


#!/bin/sh
/usr/local/sbin/eaglectrl -d
sleep 10
/usr/local/sbin/startadsl
sleep 10
mv /etc/resolv.conf.saved.by.pppd.ppp0 /etc/resolv.conf
cp /etc/resolv.conf /etc/ppp/resolv.conf

Magari come scheletro va bene, ma certo e` molto migliorabile :stordita:

PEA
16-09-2004, 19:59
Grazie e dove dovrei mettere lo script? so che c'è una cartella dove mettere ste cose ma non me la ricordo mai :fagiano:

osiryx
16-09-2004, 20:02
In genere però ppp aggiorna i dns nella sua cartella cioè /etc/ppp
ti converrebbe semplicemente fare un link
ln -s /etc/ppp/resolv.conf /etc/resolv.conf

PEA
16-09-2004, 21:49
ppp non so perchè mi modifica tutti e due e facendo così funziona bene cmq, se mettessi il link lo dovrei aggiornare ogni volta che mi collego quindi non credo che avrebbe molto senso

/dev/null
16-09-2004, 21:57
Per far eseguire quello script all'avvio puoi:
trasformarlo in un bel serivizietto: lo sposti in /etc/init.d (o /etc/rc.d/init.d) e poi dai un bel `rc-update add $NOMESCRIPT default`... Ha l'enorme svantaggio che finche' non ha eseguito tutte quelle operazioni (compreso l'aspettare i 20 secondi) non puoi fare altro... Nemmeno loggarti...
Cosi' la cosa piu' conveniente diviene far eseguire quegli script al local: aggiungi in /etc/conf.d/local.start il codice dello script... Il servizio local dev'essere inserito tra i servizi bootanti... Non so se funziona su altre distribuzioni oltre che Gentoo :fagiano:

PEA
17-09-2004, 07:31
Allora non ho trovato /etc/conf.f/ ma in /etc/rc.d/ ho trovato boot.local che contiene questo:


#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.
#
# Author: Werner Fink <werner@suse.de>, 1996
# Burchard Steinbild, 1996
#
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
va bene cmq?

Loading