PDA

Visualizza la versione completa : problema lettura nome file e DB


peppepegasus
11-05-2009, 11:25
ciao,

avrei bisogno di qualche dritta per risolvere alcuni problemi.
Devo collegarmi ad una macchina Linux (versione debian) a una macchina windows (per questo posso usare samba). Su questa macchina c'è una cartalla condivisa, al suo interno ci sono altre sottocartelle. Mi metto in una di queste. Ci sono una serie di file, voglio leggere il nome di ciascun file, catturarlo e confrontarlo con i nomi dei file presenti in un database mysql. Se il nome del file è presente nel database deve andare avanti, se non lo incontra deve copiarlo in una dir prestabilita. Il tutto, ho pensato, poò essere realizzato usando uno script bash: l'accesso al DB può essere fatto da riga di comando all'interno dello script..però non so come fare per la lettura del nomefile all'interno delle dir sulla macchina windows per poi confrotarlo con i dati dal database. Ho cercato qualcosa del tipo awk ma non ho capito se può andare bene al caso mio..se si allora come faccio fargli leggere tutti i nomi dei file, uno per volta, senza dire io ogni volta il nome del file??
Grazie per l'aiuto che spero di ricevere!!! :unz:

Z0rn
11-05-2009, 11:44
Guarda in firma: siamo allo scripting bash avanzato... :)
Cmq. con awk e un ciclo for te la dovresti cavare. Per l'interrogazione al DB non so se mysql prende SQL complessi da riga di comando. In caso ricorda che echo -e gestisce caratteri speciali come i ritorni a capo, utile per inviare piu' istruzioni sql con un unico comando.

peppepegasus
11-05-2009, 12:05
Il problema è che non so come dare l'istruzione di awk per fargli leggere ogni volta il nome file come dicevo! Mi sarà molto utile la guida di calabrialinux. grazie.

Z0rn
11-05-2009, 13:03
for i in miadir/*; do echo $i; done
Sicuramente una guida, calabra o meno, risulterebbe utile. Anche man bash, se vogliamo.

peppepegasus
11-05-2009, 13:06
Ho fatto una prova con un comando del tipo:

ls -l | awk '$8=Mio Materiale {print$0}'

seguendo un esempio che ho trovato in una gida..però non mi stampa nulla, nonstante ci sono file che si chiamano Mio Materiale. sto verificando la corretta installazione di awk. Che ne dite di un comando simile, va bene per il mio scopo?
ciao.

Z0rn
11-05-2009, 14:23
a) hai provato come ti ho detto io?
b) non ti stampa nulla perche' quel che hai scritto non ha senso: la sintassi più vicina a qualcosa di ragionevole è


ls -l| awk '{print $0}'

c) oltre che man bash, anche man awk potrebbe tornare utile.

peppepegasus
12-05-2009, 12:14
Posto qui anche se non riguarda il problema degli altri post, anche se è in relazione..
In un file bash devo fare il collegamento a una macchina win tramite samba da macchina linux..il collegamento va bene con il comando:

smbclient //sodar/sodar -Uutente%password

ma una volta eseguito questo comando mi appare il prompt della macchina windows, come faccio a chiudere la connessione? Ho inserito nel programma bash un exit (necessario alla chiusura del collegamento) ma una volta uscito il prompt di win devo digitarlo da lì.
Inoltre una volta entrato sulla macchina windows devo eseguire il comando awk che dicevo negli altri post e devo anche eseguire delle copie di file..come posso fare se li voglio sempre dare nel programma bash?
suggerimenti ben accetti.
grazie.

Z0rn
12-05-2009, 12:39
http://www.manpagez.com/man/1/smbclient/
accessibile anche da console via "man smbclient"
cmq. tra le prime 10 righe si trova:


smbclient [-b <buffer size>] [-d debuglevel] [-L <netbios name>]
[-U username] [-I destinationIP] [-M <netbios name>] [-m maxprotocol]
[-A authfile] [-N] [-i scope] [-O <socket options>] [-p port]
[-R <name resolve order>] [-s <smb config file>] [-k] [-P] [-c <com-
mand>]

peppepegasus
12-05-2009, 12:43
Ho provato con questo comando da bash

mount -t smbfs -o //sodar/sodar -U username=user,password=pwd //sodar/Archive/media/windprofile

ma mi dice

mount: no such partition found

che problema è? sbaglio qualcosa..e cosa?
grazie.

Z0rn
12-05-2009, 14:23
Chissa' per quale motivo mi ostino a rispondere alle richieste di aiuto...

Loading