Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - jerg

Pagine: 1 2 3 [4] 5 6 7
46
Server / Re: dump della ram ( hexdump )
« il: 18 Novembre 2011, 15:10:38 »
faccio un up, so che l'argomendo è un po complicato

47
Server / Re: dump della ram ( hexdump )
« il: 16 Novembre 2011, 01:52:24 »
Citazione
i miei 2€c: per fare queste cose, se le macchina fanno solo da router, consiglierei di andare su S.O. che lo fanno nativamente (*BSD) e loro implementazioni specifiche (pfsense, m0n0wall, ecc)

http://www.slideshare.net/Sandra4211/bsd-firewalling-pfsense-and-m0n0wall
http://forum.pfsense.org/index.php?board=36.0
HTH

in effetti ci sono distro più adatte, etc. e ok però avendolo letto anche su redhat è interessante capire come funziona, potrei anche voler fare il dump solo di una parte specifica della ram solo per una determinata applicatione in esecuzione, la mia domanda riguardava questo se basta il dump della ram per trasferire le informazioni dei programmi in esecuzione su un'altra macchina.

la guida è rhel 5 virtual server admin(lvs)

Citazione
Ciao,scusa la domanda ma con quale strumento verifichi il corretto funzionamento del router 1?

io personalmente lo fare con un ping o snmp se devo monitorare la macchina, per un servizio/programma con un timeout nel servizio sulla seconda macchina. Nel manuale redhat c'è scritto il loro metodo, ma non è questo il nocciolo, l'idea è capire le possibilita avendo il dump della ram.

grazie e arigrazie

48
Server / dump della ram ( hexdump )
« il: 10 Novembre 2011, 02:47:17 »
Ciao a tutti

tempo fa leggevo su un manuale di redhat che, in pratica, si possono mette due macchine che fungono da router in clunstering per avere ridondanza hai guasti e questo clunstering funziona in questo modo

il primo router invia periodicamente un dump della ram al secondo router quando il primo non risponde più al secondo questo entra in gioco, avendo in se il dump della ram del primo praticamente riprenda l'attività dal punto in cui ha lasciato il primo.

ora la questione è questa. usando il tool hexdump memorizzo il contenuto della ram in un file e poi passo il file un altra macchina, in questa seconda macchina avvio il servizio che mi serve e poi scrivo il contenuto del file nella ram. il procedimento è sicuramente più complesso di quello che dico ma è per capire. quello che vorrei sapere è se posso "costruire" una ridondanza in questo modo.

per capirci faccio il dump in questo modo

Codice: [Seleziona]
hexdump -c /dev/mem >> ramdump.txtin questo modo il file non è binario ma viene converito in formato ascii ma posso cambiare formato oppure trasferire il dump in rete tramite uno script client/server che ho, passando come stdin il dump allo script

spero di essere stato chiaro

grazie a tutti

49
Supporto Generale / Re: Aiuto per favore problemi con my.cnf
« il: 10 Novembre 2011, 02:36:24 »
mi sa che si è offeso, non essere così duro con i pivelli ;D ;D ;D

50
Supporto Generale / Re: Virtualizzazione
« il: 10 Novembre 2011, 02:24:20 »
ok io ti dico la mia situazione e tutrai le tue conclusioni

ho un ufficio con 3 utenti fissi e 5 utenti che si alternano, alcune volte ce ne sono tre alcune tutti alcune 1 e cosi via. Virtalizzo con xen su una centos 64bit in dual core amd 2.4 ghz 4 gb di ram con 2 hd in raid mirror da 500gb, 4 ethernet 1000, su cui faccio girare 4 vm con 1gb di ram l'una tutte centos, i servizi sono dns,web server interno,mail server zimbra, pxe server per le installazioni automatiche, centralino voip trixbox, e una vm spenta su cui faccio prove. ora con questa macchinetta quando siamo tutti fa i capricci ovviamente e la risolizione dns, ad esempio, diventa molto lenta e misembra il minimo.

Non è stato semplicissimo reperire tutto il materiale necessario per farlo funzionare a dovere e la logica di rete di xen non è delle più semplici e inoltre ne per kvm/qemu ne per xen ho trovato interfacce grafiche web(gratis) accurate come ad esempio quella di vmware,proxmox non lo conosco non so che dirti, cmq ci sono molti progetti in corso da quello che ho visto io in ogni caso una ricerca con google e trovi tutto. Se usi gnome sulla macchina fisica c'è utility virt-manager con cui monitorare, creare e gestire le vm sulla macchina stessa e anche quelle su altre macchine fisiche agganciandoti in ssh, puoi aggiungere e rimuovere hardware dalle vm e cosi via, al limite remoti con vnc su ssh che è sicuramente più sicuro di una pagina web con login.

In ogni caso i risultati sono ottimi e nelle aziende in cui faccio assistenza virtualizzo con xen.

Per quanto riguarda l'hardware per una macchina in produzione io credo che un 4core con 8 gb di ram e 4 hd da 500gb in raid mirror vadano più che bene(anche troppo ma se il server è in produzione non scendere sotto) assegna almeno 1gb di ram ad ogni macchine e almeno 2 per la macchina fisica, con vm windows almeno 2gb di ram. Separa il sistema dalle vm cioè il sistema nel primo mirror e file disco(.img) e i file di configurazione delle vm nel secondo mirror.

Per la rete assegna una scheda di rete ad ogni vm e una per la macchina fisica in questo modo avrai più danda e una ridondaza data dal fatto che se si sfascia una scheda le altre macchine rimangono online. Se ti serve puoi fare delle sotto reti virtuali oppure usare una sola scheda di rete per tutti(bridge ogni vm ha un suo ip come se fosse fisica)

Quando fai i backup spegni le vm altrimenti rischi di rovinare l'fs della vm.

comunque se vuoi la mia basta qualche script e il monitoring delle macchine tramite snmp con zenoss o nagios e controllare la virtualizzazione diventa molto più semplice, anche perche una volta accese le vm le tratti come delle macchine fisiche cioè accedi in ssh quindi apparte tenerle sott'occhio come fai con le macchine fisiche, non c'è granche da fare.

saluti

51
Ciaoooooo forummmmm

in merito sempre al discorso delle installazioni automatiche di windows tramite server pxe centos e una distro custom, volevo che i miei client dicessero al server che sono su e che cosa stanno facendo, mi spiego meglio quello che accade è questo:

1 - attacco il client alla rete, lo avvio e si carica tramite pxe una linux fatta da 0 che copia un immagine di windows già pronta(usa dd) dal file server.
2 - durante le varie operazioni(backup dati del client, formattazione hd e copia dell'immagine) il client avvia uno script che invia al server pxe "delle scritte" per fargli sapere il suo ip e che cosa sta facendo.

come realizzare due script, uno client e uno server per inviare messaggi tramite rete???

quello che posto qui sono script di esempio, lo script client funge da terminale con cui inviare dati e visualizzare le risposte del server. Lo script server riceve dati e replica con dei messaggi scrivendoli nel log e inviandoli in rete al client. lo script server usa xinetd per ascoltare in rete. Il bello di xinetd è che ascolta su una porta tutto quello che arriva lo mette nello stdin dello script e tutto quello che lo script stampa nello stdout lo invia al client. in questo modo si possono usare gli strumenti standard di bash (read ed echo) per ricevere/inviare messaggi e lasciare la gestione della rete a xinetd.

questi sono i link che ho consultato
http://www.troubleshooters.com/codecorn/sockets/
http://www.voipandhack.it/archives/linux/bash-socket-programming

Lato server

Installazione xinetd
Codice: [Seleziona]
yum installa -y xinetd
chkconfig --level 35 xinetd on

creare il file di configurazione di xinetd per lo script server
Codice: [Seleziona]
vi /etc/xinet.d/test
 default: on
# description: test socket server
service test
{
   port            = 3333
   socket_type     = stream
   wait            = no
   user            = root
   server          = /server.sh
   log_on_success  += USERID
   log_on_failure  += USERID
   disable         = no
}

ATTENZIONE:
per comodita ho messo come user root, altrimenti c'è da smanettare un po con il discorso permessi, andrebbe usato un utente che ha il permesso di fare quello che lo script server richiede, ad esempio se lo script server deve scrivere un log allora l'utente deve avere permessi adeguati, etc. non lasciare l'utente root su server in produzione

riavviare xientd

inserire in /etc/service una voce che identifichi la porta, protocollo e il servizio, ad esempio:
Codice: [Seleziona]
test          3333/tcp                           # Test

esempio di script server
Codice: [Seleziona]
#!/bin/bash
#ciclo infinito per continuare ad ascoltare
while true; do
        # xinetd riceve i dati e li mette nello stdin dello script server
        read IN

        case "$IN" in
                # digitando il comando serverclose, lo script server finisce e la connessione cade
                serverclose)   exit 0;;
        esac

        # xinet prende i dati dallo stdout dello script server e li invia client
        echo "[$(date +%d/%m/%y-%H:%M:%S)] SERVER REPLY OK"
        echo "[$(date +%d/%m/%y-%H:%M:%S)] SERVER REPLY OK" >> ./server.log

done

test
ora testiamo il server, usando telnet
Codice: [Seleziona]
telnet ip_server porta
premete invio(la prima riga nel ciclo while è read IN quindi il server aspetta input), dovrebbe comparire il messaggio
Codice: [Seleziona]
[30/10/11 5:10:00] SERVER REPLY OK
piccolo bug, usando il telent di windows se do il comando serverclose continua ad arrivare la risposta del server ma non esegui il comando bo! ???

lato client
esempio script client, può essrere usato come terminale, apre connessione, invia input al server e stampa le risposte dal server
possiede 3 comandi:
   close   chiude connessione
   status   fa 3 ping all host remoto e contorlla che la porta sia aperta
   help   visualizza help

Codice: [Seleziona]
#!/bin/bash

# versione script
SCRIPT_VER="1.0"

# udp o tcp
MOD="$1"

# hostname/ip
HOST="$2"

# porta
PORT="$3"

# Timeout(secondi) attesa risposta dal server dopo invio dati
SRV_REPLY_TIMEOUT="10"

#help
use(){
        echo
        echo "TESTclient Ver.:$SCRIPT_VER"
        echo "Un client/terminale semplice"
        echo
        echo "sintassi: $0 [udp|tcp] [host] [port]"
        echo
        echo "Comandi interni"
        echo "close"$'\t'"Chiude la connessione ed esce"
        echo "status"$'\t'"Verifica lo stato dell host remoto con 3 ping e verifica interroga la porta"
        echo "help"$'\t'"Visualizza questo help"
        # verifico se devo uscire o ritornare al terminale(se ricevo 1 esco, 2 ritrno al terminale)
        if [ $1 -eq 0 ]; then
                terminal
        elif [ $1 -eq 1 ]; then
                exit 1
        else
                echo "ERRORE: Non posso tornare alla funzione precedente"
                echo "        chiudo connessione ed esco"
                exit 1
        fi
}

# controllo stato connessione
connstatus() {
        # verifico exit status di ping
        echo -n "Verifica host $HOST "
        ping $HOST -c 3 > /dev/null
        if [ $? -eq 0 ]; then
                echo "OK"
                # verifico porta sia aperta
                echo -n "Verifica porta $PORT "
                (echo >/dev/$MOD/$HOST/$PORT) &>/dev/null && echo "Ok" || echo "FALLITA"
        else
                echo "FALLITA"
        fi

        # rientro nel terminale
        terminal
}

# chiusura connessione
connclose() {
        echo -n "Chiusura connessione "
        3<&-
        3>&-
        echo "OK"
        exit 0
}

# terminale
terminal() {
        while true; do

                # aspetto dallo stdin
                echo -n ">"
                read -r a

                # chiudo handle
                case "$a" in
                        close)   connclose
                        ;;
                        status) connstatus
                        ;;
                        help)   use 0
                        ;;
                esac
                # invio msg
                #echo -e $a >&3
                echo -e "$a" >&3

                # attendo risposta dal server
                read -t $SRV_REPLY_TIMEOUT SRV_REPLY <&3
                if [ $? -eq 1 ]; then
                        echo "Nessuna risposta dal server(timeout: $SRV_REPLY_TIMEOUT sec)"
                else
                        echo $SRV_REPLY
                fi
        done
}

# verifico i parametri passati
if [ ! "$PORT" ]; then
        use 1
fi

# Connessione e verifica della connessione
echo "Apertura connessione $MOD $HOST:$PORT"
if ! exec 3<> /dev/$MOD/$HOST/$PORT; then
        echo "Impossibile aprire connesione con $HOST:$PORT"
        exit 1
else
        echo "Terminale aperto, usare help per ottenere informazioni"
fi

# controllo trap, usare trap -l per la lista completa
# CTRL+C
trap connclose SIGINT

terminal

qui il discorso è un po più complicato perchè non c'è nessuno che implementa il discorso rete quindi bisogna aprire un socket per inviare i dati. per evitare che lo script venga chiuso senza chiudere prima il socket ho aggiunto la riga trap connclose SIGINT che controlla CTRL+C.

Sicurezza
Attenzione perchè questi script non sono per niente sicuri, non ho fatto nessun test e sopratutto TUTTE LE INFORMAZIONI TRASMESSE E RICEVUTE SONO IN CHIARO, chiunque sia in grado di sniffare i vostri pacchetti vi può vedere tranquillamente.

In ogni caso già usando un utente non privilegiato nel file di xinetd lo script server potra fare sono quello che l'utente può fare. In ogni caso lo script server cosi com'è non esegue nessun controllo sull'identità del client

Ciao a todossssss

52
Ciaoooooo forummmmm

in merito sempre al discorso delle installazioni automatiche di windows tramite server pxe centos e una distro custom, volevo che i miei client dicessero al server che sono su e che cosa stanno facendo, mi spiego meglio quello che accade è questo:

1 - attacco il client alla rete, lo avvio e si carica tramite pxe una linux fatta da 0 che copia un immagine di windows già pronta(usa dd) dal file server.
2 - durante le varie operazioni(backup dati del client, formattazione hd e copia dell'immagine) il client avvia uno script che invia al server pxe "delle scritte" per fargli sapere il suo ip e che cosa sta facendo.

come realizzare due script, uno client e uno server per inviare messaggi tramite rete???

quello che posto qui sono script di esempio, lo script client funge da terminale con cui inviare dati e visualizzare le risposte del server. Lo script server riceve dati e replica con dei messaggi scrivendoli nel log e inviandoli in rete al client. lo script server usa xinetd per ascoltare in rete. Il bello di xinetd è che ascolta su una porta tutto quello che arriva lo mette nello stdin dello script e tutto quello che lo script stampa nello stdout lo invia al client. in questo modo si possono usare gli strumenti standard di bash (read ed echo) per ricevere/inviare messaggi e lasciare la gestione della rete a xinetd.

questi sono i link che ho consultato
http://www.troubleshooters.com/codecorn/sockets/
http://www.voipandhack.it/archives/linux/bash-socket-programming

Lato server

Installazione xinetd
Codice: [Seleziona]
yum install -y xinetd
chkconfig --level 35 xinetd on

creare il file di configurazione di xinetd per lo script server
Codice: [Seleziona]
vi /etc/xinet.d/test
contenuto del file
Codice: [Seleziona]
default: on
# description: test socket server
service test
{
   port            = 3333
   socket_type     = stream
   wait            = no
   user            = root
   server          = /server.sh
   log_on_success  += USERID
   log_on_failure  += USERID
   disable         = no
}

ATTENZIONE:
per comodita ho messo come user root, altrimenti c'è da smanettare un po con il discorso permessi, andrebbe usato un utente che ha il permesso di fare quello che lo script server richiede, ad esempio se lo script server deve scrivere un log allora l'utente deve avere permessi adeguati, etc. non lasciare l'utente root su server in produzione


inserire in /etc/service una voce che identifichi la porta, protocollo e il servizio, ad esempio:
Codice: [Seleziona]
test          3333/tcp                           # Test
avviare xientd
Codice: [Seleziona]
service vinetd start
esempio di script server
Codice: [Seleziona]
#!/bin/bash
#ciclo infinito per continuare ad ascoltare
while true; do
        # xinetd riceve i dati e li mette nello stdin dello script server
        read IN

        case "$IN" in
                # digitando il comando serverclose, lo script server finisce e la connessione cade
                serverclose)   exit 0;;
        esac

        # xinet prende i dati dallo stdout dello script server e li invia client
        echo "[$(date +%d/%m/%y-%H:%M:%S)] SERVER REPLY OK"
        echo "[$(date +%d/%m/%y-%H:%M:%S)] SERVER REPLY OK" >> ./server.log

done

test
ora testiamo il server, usando telnet
Codice: [Seleziona]
telnet ip_server porta
premete invio(la prima riga nel ciclo while è read IN quindi il server aspetta input), dovrebbe comparire il messaggio
Codice: [Seleziona]
[30/10/11 5:10:00] SERVER REPLY OK

53
fantastico il primo link, ce nè parecchio che non so sugli ftp, sctudia sctudia sctuida... ;D

54
sto dando un occhiata diciamo in "live" alla ram e vedo che mentre carico i file la ram e sopratutto la cached aumenta, quando elimino i file diminuisce quindi deduco che i dati vengono salvati nella cache per velocizzare le richieste successive agli stessi file, quindi dovrei trovare il sistema per dirgli di mantenere i dati nella cache per un periodo minore

comunque ora sto a 180mb usati su 1024 e stanno aricando 3 persone insieme quindi direi che per ora va bene, infatti ora che ho rimosso parecchi file sto sui 55mb usati

55
purtroppo non ciò pensato prima ora il comado l'ho gia dato quindi la ram è vuota cmq:

Codice: [Seleziona]
[root@ftp /]# free -m
             total       used       free     shared    buffers     cached
Mem:          1010         43        967          0          2         21
-/+ buffers/cache:         19        991
Swap:          511          0        511

dammi 2 minuti che accedo all'ftp vedo se si riempie e riposto free

56
CIao a tutti, ho tirato su un ftp con un server di stampa xerox buttato li, cambiato l'hd, sostituita la ram 256mb con una 1024mb 400mhz che da quello che ne so io abbasta e avanza, installata la centos, e alcuni servizi che elenco

Codice: [Seleziona]
[root@ftp /]# chkconfig --list
atd             0:off   1:off   2:off   3:off   4:off   5:off   6:off
crond           0:off   1:off   2:off   3:on    4:off   5:on    6:off
gpm             0:off   1:off   2:off   3:off   4:off   5:off   6:off
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
lm_sensors      0:off   1:off   2:on    3:on    4:on    5:on    6:off
mcstrans        0:off   1:off   2:off   3:off   4:off   5:off   6:off
messagebus      0:off   1:off   2:off   3:off   4:off   5:off   6:off
multipathd      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:off   4:off   5:off   6:off
netplugd        0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:off   3:on    4:off   5:on    6:off
portmap         0:off   1:off   2:off   3:on    4:off   5:on    6:off
rawdevices      0:off   1:off   2:off   3:off   4:off   5:off   6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
snmpd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
snmptrapd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
tcsd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
vsftpd          0:off   1:off   2:off   3:on    4:off   5:on    6:off

tutto sommato poca roba installata e ancora meno attiva.


il problema:
accedono 6 o 7 persone contemporaneamente al servizio ftp e vai che la ram schizza al 80/90% occupati. Quando questi si disconnettono scende intorno all'70%. dando un occhiata a top vedo che rimangono 4/5 voci di vsftpd che occupano 0% di ram e che come utenti hanno nobody, root, e administrator che uno degli utenti dell'ftp. il processo che occupa più ram, sempre secondo top, è snmpd che però occupa lo 0.8% che mi sembra un po poco per arrivare al 78% di ram occupata con la macchina in idle. ho controllato i log per vedere se qualcosa non va ma non ho visto niente di anormale e ho controllato più volte.

soluzione "napoletana"(senza offesa ovviamente)
ho cercato un metodo per scaricare la ram e ho trovato questo comando che in pratica svuota la cache dai dati inutilizzati e voilà sono passato da 800 e passa mb di ram usati a 72mb e tutto ancora funziona perfettamente!!!

il codice è questo
echo "3" > /proc/sys/vm/drop_caches

quindi ora ho schedulato la cosa ogni ora con cron e sembra aver risolto

grande dubbio
è possibile che vsftpd, che ad ogni login avvia una nuova istanza di se stesso, nonn killa le istanze all'logout ed è possibile che si divori tutta questa ram???

grazie a tutti
saluti

57
Server / daemon script personalizzato
« il: 05 Settembre 2011, 21:03:58 »
Ciao a tutti, scrivo questo post perchè ho cercato in rete una spiegazione ma è tutto in inglese e poco approfondito comunque, a me sarebbe servito un post cosi.

Sto scrivendo script vari e programmi in c per automatizzare le installazioni di windows da pxe in modo che i pc si "aggiustano da soli" mentre io vado in giro a cercare clienti, alla fine di tutto le installazioni dovrebbero partire da pxe, installare windows, avviare lo script batch che installa silenziosamente i software standard creando un file usato da un programmino per creare i rapporti d'intervento e infine tutto via mail a me e in caso di errore sms al cellulare. Ora sto creando una live per ripristinare l'immagine di windows già pronta sul disco del client, non scendo troppo in particolari perchè è trooooppo lunga la questione, quindi mi serve uno script generico che faccia partire altri script o programmi come demoni all'avvio della live sul client, del tipo
Codice: [Seleziona]
service copernico-script start
ok lo script deve(per quello che serve a me) montare uno share nfs e avviare lo script che è sul server, deve anche poter avviare uno script in locale. Il codice seguente va in /etc/init.d
NON FATE COPIA INCOLLA DA WINDOWS le codifiche dei testi sono diverse esce fuori un disastro.
Codice: [Seleziona]
#!/bin/bash
#
# copernic-script        copernicoPXE daemon
#
# Ultima mod.: 04/09/2011
#
# chkconfig: 2345 12 88
# description: This file starts and stops the scripts copernicoPXE (cloning installation systems & solutions)
# processname: copernico-script
# pidfile: /var/run/copernico-scipt.pid
#
### BEGIN INIT INFO
# IT
# Questo init script e' concepito com starter genrico per avviare come demone
# uno script o un file binario. Il demone(binario o script) da mandare in esecuzione
# puo' essere in locale o su un server nfs. Se la variabile $server_binary contiene
# un path NFS lo script monta il server e cerca il file specificato nella variabile
# $binary, altrimenti prende come path del demone la variabile $binary. Questo vuol dire
# che se si vuole avviare un demone da un file locale basta inserire il path nella
# variabile binary altrimenti va specificato il path NFS nella variabile $server_binary,
# il mountpoint nella varibile $server_mp e come $binary il nome del file da eseguire
# come demone.
#
# La variabili $procesname server al sistema per attribuire un nome al processo
#
# La variabile $script_name indica il nome del file che state leggendo, quando
# si richede lo status del demone viene visualizzato il nome di questo script
# per chiarezza. Visualizzare le info con il comando:
#
# service nome-demone status
#
# dove nome-demone e' il nome di questo script, che dovra' essere posizionato in
# /etc/init.d/nome-demone insieme
#
#
# Di seguito sono riportati alcuni esempi di configurazione
#
# Es. per eseguire uno script su un server
#
# binary="restore-image.sh"
# procesname="copernico-script"
# server_binary="192.168.1.102:/mnt/ar0/it/copernico/script"
# server_mp="/mnt"
#
# Es. per eseguire un binario in locale
#
#       binary="/bin/restore-image.sh"
#       procesname="copernico-script"
#       server_binary=""
#       server_mp=""
#
# Es. per eseguire uno script in locale
#       binary="/bin/restore-image.sh"
#       procesname="copernico-script"
#       server_binary=""
#       server_mp=""
#
# Variabili:
#
# binary Nome dello script o del binario da eseguire.
# procesname Nome del processo, viene utilizzato per comunicare cosa sta avviando.
# server_binary Path NFS del server, es.: 192.168.1.102:/mnt/ar0/it/copernico/script.
# server_mp Mountpoint del server NFS.
# script_name Nome di questo file
# script_ver Versione di questo file
#
#
# ATTENZIONE
# -----------------------------------------------------------------------------------------
# Se il demone da eseguire e' un binario che inizia e finisce la sua attivita' senza
# restare in attesa di input, o uno script che inizia e finisce senza attendere input,
# lo stop del demone restituira' sempre fallito in quanto lo scipt o il binario e'
# gia' terminato, am cancellera' comunque il file PID e tutto il resto.
#------------------------------------------------------------------------------------------
#
### END INIT INFO

# Source function library.
. /etc/init.d/functions

script_name="copernico-script"
script_ver="1.1.0"

binary="restore-image.sh"
procesname="copernico-script"
server_binary="192.168.1.102:/mnt/ar0/it/copernico/script"
server_mp="/etc/copernico"

RETVAL=0

start() {
echo "Starting: $procesname"
# controllo se la variabile $server_binary e' vuota
# per capire da dove prendere il binario o script
# da eseguire.
if [ -z $server_binary ]; then
echo "Assuming local path for binary: $binary"
echo "Starting daemon"
# controllo se $binary e' eseguibile
if [ ! -x $binary ]; then
echo "The binary or script $binary not executable or not exist"; exit 1
fi
# avvio del demone
daemon $binary
    RETVAL=$?
    PID=$!
echo
echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$procesname
echo $PID > /var/run/$procesname.pid
else
echo "Assuming network path for binary: $server_binary mounted in $server_mp"
echo "Mounting server"
# controllo se il mountpoint e' una directory
if [ ! -d $server_mp ]; then
echo "The mountpoint $server_mp not exist or not a directory"; exit 1
fi
# mounting del server
err=$(mount $server_binary $server_mp 2>&1)
errno=$?
# se il valore di return dal mount e' 0
# visualizzo l'errore ed esco
if [ ! $errno -eq 0 ]; then
echo "$err : return $errno"; exit 1
fi
                echo "Starting daemon "
# controllo che binary sia eseguibile
if [ ! -x $server_mp/$binary ]; then
echo "The binary or script not executable or not exist"; exit 1
fi
                # avvio del demone
daemon $server_mp/$binary
RETVAL=$?
PID=$!
echo
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$procesname
                echo $PID > /var/run/$procesname.pid
fi
}

stop() {
    echo "Stopping: $procesname"
# se $server_mp non e' vuota smonto il mountpoint
if [ ! -z $server_mp ]; then
echo -n "Unmounting: $server_mp "
err=$(umount $server_mp 2>&1)
errno=$?
if [ ! $errno -eq 0 ]; then
                echo "$err : return $errno"
        fi
fi
killproc $procesname
RETVAL=$?
echo
echo
if [ $RETVAL -eq 0 ]; then
        rm -f /var/lock/subsys/$procesname
        rm -f /var/run/$procesname.pid
fi
}

restart() {
stop
start
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    status)
echo
echo "Info"
echo "---------------------------------------"
echo "CopernicoPXE - init script"
echo "Script: $script_name"
echo "Ver.:   $script_ver"
echo
echo "Settings"
echo "---------------------------------------"
echo "Script or binary to execute: "$binary
echo "Process name: "$procesname
echo "NFS server path: "$server_binary
echo "Local mount point: "$server_mp
        echo
echo "Status"
echo "---------------------------------------"
status $procesname
echo
    ;;
    restart)
        restart
    ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
    ;;
esac

exit 0
ovviamente questo script avvia un'altro script che una volta eseguito termina e quindi il successivo stop darà fallito a meno che lo script non sia ancora in esecuzione.
Ho scritto dei commenti all'interno del codice con degli esempi per configurarlo.

fate riferimento a questa guida per quanto riguarda lo scripting bash
http://www.pluto.it/files/ildp/guide/abs/index.html

ho fatto i test sia con un binario sia con uno script, in locale e in remoto

spero sia utile a qualcuno anche se uno, magari solo io ;D

58
Networking / Re: Collegamento wifi
« il: 01 Settembre 2011, 14:59:36 »
Citazione
eheh appunto vorrei capire come associarlo
hahahah fantastico, ok ora ci siamo capiti  ;D

59
Networking / Re: Collegamento wifi
« il: 25 Agosto 2011, 17:14:32 »
Citazione
[root@root ~]# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  Mode:Managed  Frequency:2.412 GHz
          Access Point: Not-Associated   Tx-Power=14 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

comunque già a questo punto ti dice che non ha associato l'access point

Citazione
Access Point: Not-Associated

però potrebbe essere utile sapere come effettuare una connessione alla wireless da shell da usare in uno script o quando non si ha NetworkManager purtroppo ho il netbook che da problemi con linux ora appena riesco a farlo partire do bene un occhiata ai comandi

60
Sicurezza / Re: Opinioni su configurazione ipables per ftp
« il: 22 Agosto 2011, 08:49:05 »
aaaaaa carino, grazie

Pagine: 1 2 3 [4] 5 6 7