PDA

Visualizza la versione completa : Esecuzione script


Valeria75_bis
28-11-2008, 16:26
Ciao a tutti, come posso eseguire uno script del tipo


#!/bin/sh

# Path del file LOG
LOG="/var/log/apache2/httpd-access.log"

# Stringa random da ricercare
RANDOM="Sk -mk "



Altra domanda.... questo comando cosa fa esattamente??


non capisco il significato delle | presenti in ogni riga

grep '$( $RANDOM / )' $LOG \
| cut -f 6 -d " " \
| grep -v -F -f /root/email_validate.prn \
| sort \
| uniq \
> /root/email_ validate.prn


Grazie mille

PinguinoGoloso
28-11-2008, 17:14
http://www.pluto.it/files/ildp/HOWTO/Bash-Prog-Intro-HOWTO/Bash-Prog-Intro-HOWTO.html :zizi: .

mykol
28-11-2008, 19:31
dal link che ti ha postato PinguinoGoloso

Il segno "|" (e non "!") una "pipe", vedi sotto.

" .....................
4.1 Che cosa sono e perch vorrai utilizzarle (|)
Le pipe ti permettono di usare (molto semplice, insisto) l'output di un programma come input di un altro.
4.2 Esempio: semplice pipe con sed
Questo un modo molto semplice di usare le pipe.

ls -l | sed -e "s/[aeio]/u/g"


Qui, succede questo: prima eseguito il comando ls, ed il suo output, invece di essere stampato, inviato (mandato in pipe) al programma sed, che a sua volta, stampa quello che ha da stampare."

Valeria75_bis
03-12-2008, 01:18
Originariamente inviato da mykol
dal link che ti ha postato PinguinoGoloso

Il segno "|" (e non "!") una "pipe", vedi sotto.




intendi che devo utilizzare | ???

infatti nel mio codice ho

grep '$( $RANDOM / )' $LOG \
| cut -f 6 -d " " \
| grep -v -F -f /root/email_validate.prn \
| sort \
| uniq \
> /root/email_ validate.prn


quindi nel mio caso sono una serie di comandi gestiti tramite pipe

invece il

> /root/email_ validate.prn

prevede la presenza del simbolo ">"


ultima domanda:

lo script corretto come l'ho postato?? (intendo gli "a capo" sono corretti)

Grazie mille

Valeria75_bis
05-12-2008, 00:32
Un aiutino please... mi perdo nello script :-(((

mykol
05-12-2008, 11:37
purtroppo di script non me ne intendo ...

Valeria75_bis
05-12-2008, 13:55
Sapresti dirmi quale sarebbe il forum piu adatto per questo tipo di quesiti?

Grazie

Akiro
05-12-2008, 14:23
Originariamente inviato da Valeria75_bis
intendi che devo utilizzare | ???

infatti nel mio codice ho

grep '$( $RANDOM / )' $LOG \
| cut -f 6 -d " " \
| grep -v -F -f /root/email_validate.prn \
| sort \
| uniq \
> /root/email_ validate.prn

quindi nel mio caso sono una serie di comandi gestiti tramite pipe



il primo comando esegue una ricerca della stringa all'interno del file di log poi l'output viene reindirizzato ogni volta come input al comando successivo...





invece il

> /root/email_ validate.prn

prevede la presenza del simbolo ">"



il ">" crea un file con l'output del comando precedente

es.
ls > lista.txt
crea un file lista.txt contenente i file nella dir


in questo caso devi avere i permessi per scrivere su /root...





ultima domanda:

lo script corretto come l'ho postato?? (intendo gli "a capo" sono corretti)

Grazie mille


per saper se corretto l'unico modo provarlo, puoi?

per gli a capo non so... ^^'

Valeria75_bis
05-12-2008, 15:09
Grazie mille, ultima domanda, prima di provarlo ;-)

lo salvo in un file (con estensione... non imporante)

e poi?? comando?

Grazie ancora

Akiro
05-12-2008, 15:37
Originariamente inviato da Valeria75_bis
Grazie mille, ultima domanda, prima di provarlo ;-)

lo salvo in un file (con estensione... non imporante)

e poi?? comando?

Grazie ancora


per lanciare uno script da console l'importante dargli i permessi di esecuzione (chmod a+x nomescript), poi si lancia con "./nomescript"

ps. x provarlo prima guarda bene cosa il programma "Sk" dato che io non ho la minima idea

Loading