Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- aiuto su alcuni es di lab (http://www.dsy.it/forum/showthread.php?threadid=37660)
aiuto su alcuni es di lab
Ciao a tutti,
c'è qualuno che mi può dire come si fanno questi esercizi???
1) Trovare tutti i file che contegono la parola login e copiarli in una nuova direcotory.
Ah sapete dirmi se c'è un comando che mi fa vedere tutte le directory?
2)Trovare i 10 file che sono stati modificati più di recente (mi hanno detto che si fa con stat ma come??)
3) trovare tutti i file e mostrarli tutti tranne il primo (ok con il tail ma come??)
SCUSATE SO CHE SONO ESERCIZI BANALI MA NON SO RISOLVERLI...
Spero che qualuno mi dica qualcosa... ciao ciao
Re: aiuto su alcuni es di lab
Nessuno mi da una mano??? :-(
Re: aiuto su alcuni es di lab
Originally posted by elex1984
Ciao a tutti,
c'è qualuno che mi può dire come si fanno questi esercizi???
1) Trovare tutti i file che contegono la parola login e copiarli in una nuova direcotory.
Questo l'ho fatto cosi :
#salvo i nomi dei files che contengono login in un file di testo
find / -type f | xargs grap -l "login" >>listafiles.txt
# creo il nuovo dir
mkdir dir2/
#leggo riga per riga il file di testo e copio i files che corrispondo a quel path
for file in $(cat files.txt) ; do
cp $file ... dir2/ ;
done
exit
#mi da un errore ma quando vado a controllare il dir2 , contiene tutti i files .
la lista dei files , la puoi vedere faccendo " cat listafiles.txt | more "
Ah sapete dirmi se c'è un comando che mi fa vedere tutte le directory?
questo , tranne ls non so altro
2)Trovare i 10 file che sono stati modificati più di recente (mi hanno detto che si fa con stat ma come??)
questo nel man di stat, c'è una opzione che si chiama mstat ( modfication status presumo ! )
e poi c'è un esempio di come usarla :
stat -mtime * | sort +1
che dovrebbe elencare i file, con il tempo della modifica, ma ho provato e non funziona....
3) trovare tutti i file e mostrarli tutti tranne il primo (ok con il tail ma come??)
questo lo risolvi cosi :
ls -a | sort -n | tail +2 # qua usi il 2 , perché deve cominciare a stampare la lista , partendo dal secondo elemento
spero di essere stato utile, se hai qualche domanda chiedi, anch'io devo fare quest'esame il 19. in bocca al lupo!
SCUSATE SO CHE SONO ESERCIZI BANALI MA NON SO RISOLVERLI...
Spero che qualuno mi dica qualcosa... ciao ciao
ciao grazie mille... troppo gentile... e si mi tocca fare ancora il lab e pure scritto e orale... speriamo in bene...
dimenticavo crepi il lupo :-)
ciao, credo di aver trovato qualcosa ; anche se non è completo
ti posto la mia soluzione...
allora con ls | stat -mtime | sort -n non mi da tutti i file
allora ho pensato di farlo con find :
find / -type f | xargs stat -Mtime
ma ripeto NON FA IL SORT CON LE DATE DELLA MODIFICA
e non so come farlo , se c'è qualcuno che ha una idea, postate perfavore.
ciao
scusa ma nell'es 1
quando mi scrivi cp $file ... dir2/
ma i ... cosa centrano??? cosa dovrei scrivere o è proprio così???
l'unica è fare uno scriptino
#!/bin/sh
echo "elenco file modificati" > modify
for FILE in $(find / -type f);do
MOD=$(stat -atime $FILE)
echo "$MOD;$FILE" >> modify
done
sort -r -t';' modify | head -10
__________________
Sto cercando disperatamente di capire perché i piloti kamikaze si mettessero i caschi in testa.
Dave Edison
find /* -type file | xargs ls -l -t | head -10
fate un po di test... ma sembra funzionare per gli ultimi 10 file modificati
era cosi semplice, e io come mi aveva indicato elex , pensavo che va risolto con stat! grazie miguel ...
) non ci posso creder , ho cercato per 2 giorni di farlo con stat
Ciao, io avevo scritto stat xkè mi avevano detto si rislve con stat (ma non sapevo :-)) senti nasajuve come mai nel primo esercizio hai scritto cp $file ... dir2/
non riesco a capire i puntini cosa significano.. me lo puoi dire?? o devi scrivere qualcosa al posto dei ...?? grazie.
ciao, elex.
... l'ho trovato nel manuale di cp, c'è scritto :
cp file ... dir
quindi per copiare deil file in un dir , bisogna mettere ... .
ciaoe
Ah ok.. grazie mille molto gentile :-) ciao ciao
il primo es :
# creo dir ... mentre in root : mkdir miguel
# for i in $(find / -type f -exec -l grep "login" {} \; ) ; do cp "$i" /root/miguel; done;
a me funziona, pero il
find -type f -exec -l grep "login" {} \;
da un messaggio:
grep line too long : truncated
e nn dovrebbe in quanto grep prende uno a uno i file da find..
qualcuno ha qualce idea?
avete questo problema anche voi?
(pure find / -type f | xargs grap -l "login" mi da lo stesso mssg)
# for i in $(find / -type f -exec -l grep "login" {} \; ) ; do cp "$i" /root/miguel; done;
Originally posted by miguel
find /* -type file | xargs ls -l -t | head -10
fate un po di test... ma sembra funzionare per gli ultimi 10 file modificati
__________________
Sto cercando disperatamente di capire perché i piloti kamikaze si mettessero i caschi in testa.
Dave Edison
vedi in man ... ls -t
sort by time(modified time default), latest first.
cioè.. ordina mettendo in testa il piu recentemente modificato
io ho un altro dubbio.. non so se xargs va bene per l'ordinamento in quanto sappiamo che contiene l'output di find, una lista.. e se l'output è grosso.. xargs lo divide in piu sublists.. e spero ls -t sappia gestire le varie sublist.
dai test sembra funzionare..
ok conosco il comando....
ma dal risultato della find, riga per riga (usi xargs) va in pasto a ls -l...che ti stampa il file e lo ordina solo cn se stesso...non con tutti i file
__________________
Sto cercando disperatamente di capire perché i piloti kamikaze si mettessero i caschi in testa.
Dave Edison
capisco..
comunque l'output mi da i file recentemente modificati nell'ordine giusta. A sto punto ls sembra prendere i blocchi xargs e visualizzarli ordinatamente con -t.
Scusate sempre nel primo esercizio...
faccio tutto quello che devo fare ma poi come faccio a verifiacare se nella nuova directory ci sono i file??? esempio creo elena come faccio a enrare???
Altro esercizio copiare i file che inizinano per f e metterli in un'altra directory senza cambiare i permessi???
for i in $(find / -type f -name "f*" ) ; do cp -p "$i" /root/dir2; done
per verificare se ci sono i file :
o fai : ls /dir2 | more
o ti sposti sul dir 2 : cd dir2
e poi fai ls | more
grazie mille :-)
Ciao un altro es che ho trovato è: per ogni utente del sistema stampare i gruppi a cui appartiene, senza utilizzare i comandi id e groups
qualcuno l'ha risolto così:
for x in $(cat /etc/passwd |cut -d ':' -f 1); do echo "$x: ""$(for y in $(cat /etc/group|grep -s $(cat /etc/passwd|grep -s "$x"|cut -d ':' -f 3)|cut -d ':' -f 1);do echo -n "$y ";done)";done
me lo potete spiegare? se c'è modo più semplice me lo dite??
Altro quesito:
so che se devo archiviare con ar uso
ar cr archivio.ar
Invece se devo usare tar
tar -cvf archivio.tar
SE DEVO ARCHVIARE file .gz? cosa si usa?
credo che sia : ---> compress
scusate.. avrei bisogno di un aiutino. Per il partizionamento.. i cilindri possono essere del tipo:
inizio - fine
0 124
124 248
248 ....
o cosi?
0 124
125 248
249 ....
grazie mille
poi se qualcuno sa come rendo bootable una partizione...
grazie ancora
x miguel
ma per il partizionamento è più semplice segliere la partizione (minix, fat ecc) poi andare su base e premere m poi andare sulla dimensione e mettere il numero di kb che ti da il prof...
NON SAPETER RISP A QUESTO???
per ogni utente del sistema stampare i gruppi a cui appartiene, senza utilizzare i comandi id e groups
qualcuno l'ha risolto così:
for x in $(cat /etc/passwd |cut -d ':' -f 1); do echo "$x: ""$(for y in $(cat /etc/group|grep -s $(cat /etc/passwd|grep -s "$x"|cut -d ':' -f 3)|cut -d ':' -f 1);do echo -n "$y ";done)";done
me lo potete spiegare? se c'è modo più semplice me lo dite??
x i cilindri... incollo sotto una risposta:
Ragazzi io ho appena passato quest'esame...che fatica...era la quarta volta che lo davo.però un bel 30 l'ho preso.
vi voglio dare un consiglio se non è già stato detto.
Molti ragazzi sono stati bocciati alla partizione per un motivo stupido e spero di aiutarvi.
Ultimamente il monga guarda nella tabella delle partizioni anche se i cilindri sono giusti!
Il problema sorge quando andate a modificare una partizione già fatta da un studente precedente sullo stesso computer.
Se cambiate dimensione e tipo di partizione e poi schiacciate tasto m su base ciò potrebbe portare a cilindri sfasati(non segnalati come errori da minix) e a un'immediata bocciatura senza possibilità di repplica!
la soluzione è:
dopo aver cambiato dimensione e tipo della partizioni quando schiacciate m su base controllate i cilindri che siano allineati; se non lo sono schiacciate ancora m su base più volte finchè non si allineano!
per chi ne avesse bisogno i cilindri sono allineati quando per esempio i campi cyl sono
da 1 a 29 la prima partizione
da 30 a 55 la seconda
da 56 a 78 la terza e così via...
le persone bocciate invece avevano cilindri del tipo:
da 1 a 35 la prima partizione
da 30 a 55 la seconda
da 70 a 78 la terza e così via...
Spero di essere stato d'aiuto...e in bocca al lupo a tutti
############## facendo con "m" a me è uscito cosi:
inizio - fine
0 124
124 248
248 ....
pero nn so se è giusto.. nn mi ricordo le spiegazioni in classe.. ma mi sembra che dev'essere strettamente crescente...124-125
x elex
for x in $(cat /etc/passwd |cut -d ':' -f 1); do echo "$x: ""$(for y in $(cat /etc/group|grep -s $(cat /etc/passwd|grep -s "$x"|cut -d ':' -f 3)|cut -d ':' -f 1);do echo -n "$y ";done)";done
prima cosa.. nella parentesi più interna, grep -s non da output.. ed è giusto perché nel man vienne specificato che non da output
a voi?
poi.. la parentesi più interna da in output (..in teoria) una lista.. e grep non sa gestire questa lista.
(infatti da un errore .. a me dice che non puo aprire il secondo elemento della lista)
in piu.. se fai grep "0" lui lo trova anche nel gruppo driver cha ha il numero 10 ma nn centra niente con il gruppo operator (0)
nn sono esperto di 'ste cose dunque confermatemi pure voi..
a mio parere non funziona. almeno a me..
help me se sbaglio
ho fatto una versione semplificata che utilizza solo gli uid e gid
for i in $(cat /etc/passwd | cut -d ':' -f 3); do echo "$i : $(cat /etc/passwd | cut -d ':' -f 3-4 | grep "^$i:" | cut -d ':' -f 2)";done;
sul mio pc tutti gli id che ho appartengono ad un solo gruppo..
non ho chiare le idee su questa cosa.. un id puo aggiungersi a piu gruppi? come?
scusate ragazzi a me lo scorso appello di lab è capitato il seguente esercizio: trovare tutti i file root che hanno dimensione tra 5 k e 100 k e che occupino un numero dispari di blocchi su disco e archiviarli in un arichivio ar. come cavolo si fa?!
qual'è il rapporto blocco/kilo?
non lo so...
Qualcuno sa come fare questo:
Copiare tutti i file sotto /usr che iniziano con la lettera c in /tmp conservando gerarchia e permessi.
credo su faccia così:
cp -p /directory/albero1/m* /directory/albero2
ops..
cp -p /directory/albero1/c* /directory/albero2
scusa l'errore :p
ma così non so se ti copia i file anche di tutte le sottodir
a me trentini ha detto che si faceva
o facendo un archivio e scompattandolo dall'altra parte
o con un for
ma non ne sono venuto a capo di niente
ummm, boh..io sapevo questo. ma nessuno sa come si risolve l'esercizio che ho postato io prima?
quello dei blocchi dispari dovrebbe essere una cosa tipo:
#!/bin/sh
for FILE in $( find / -type f -size +10 -a -size -200 | xargs ls -l | tr -s " " : | cut -d : -f 5,8); do
BLOCCHI=$(echo $FILE | cut -d : -f 1)
DISPARI=$(echo $FILE | cut -d : -f 2)
if [ $BLOCCHI % 2 -eq 1 ]; then
ar rc archivio.ar $DISPARI
fi
done
ma non perchè ma mi dice
No space on root device
scusa nell'es che hai appena fatto nel cut -d : -f 5,8
5 non è la colonna del PID??? o sbaglio???
la colonna 5 è se elenchi con ps -axl
ma qui io ho fatto l'elenco dei file e mi guardandi mi sembra che la colonna 5 è quella della dimensione dei file
mmm mi ricordo che alla fine il prof mi disse che si doveva usare il comando "du" però tu non l'hai usato...che casino..
Mi sa che hai ragione tu
forse:
#!/bin/sh
for FILE in $( find / -type f -size +10 -a -size -200 | xargs du ); do
BLOCCHI=$(echo $FILE | cut -d " " -f 1)
if [ $BLOCCHI % 2 -eq 1 ]; then
ar rc archivio.ar $FILE
fi
done
così non mi da problemi
come faccio a verificare contenuto ar?
non me lo ricordo...sto cercando qui il comando..
ecco!! allora per leggere un archivio tar il comando è Tar t archivio.tar quindi credo che per un archvio ar sia la stessa cosa più o meno
però non riesco a capire perchè il tuo script mi da errore di out of space. che du palleeeee
a me nn trova blocchi dispari.
se i file hanno una dimensione in kb... e blocchi = file * 2, nn esistono blocchi di dim dispari
nell'altro thread avevo letto che il for dava problemi di out of space ed era meglio il while.....però che palle non si capisce che bisogna usare!!!
infatti ma la dimensione dei blocchi che trova mi sembrano tutti pari perchè non crea l'archivio...quindi non entra mai nell'if!!!
Provaci tu perchè mo mi ripasso un po di teoria visto che c'è pure l'orale....
BASTAAAAAAAAAAAAAAAAAAA
qualcuno sa come copiare tutti i file da /usr e sottodir in /tmp mentenendo gerarchia e permessi?
il prof mi ha detto che non si può fare con cp!!!
se non si può fare con cp allora non lo so
Ho trovato questo... funziona bene.
copia struttura DIR e poi FILES.. cp -p mantiene permessi
Personalmente ho risolto anch'io tramite il seguente script (tipo di esercizio: copiare file che inziano con un certo pattern da un ramo del FS ad un altro, mantenendo la struttura delle dir):
--------
#!/usr/bin/sh
# uso: <nomescript> origine destinazione pattern
for i in $(find $1 -type d) # dir del ramo passato come arg 1
do
mkdir -p "$2/$i" # ricrea la struttura nel path passato come arg 2
done
for j in $(find $1 -type f -name "$3*") #i files da copiare
do
cp -p "$j" "$2/$j"
done
elex1984 alla fine , sei riuscita a rispondere alla domanda sul xargs?
spero di avertelo detto giusto
miguel tu invece cosa hai fatto!?
ho passato il lab con un bel 23 ora mi godo il relax di qualche giorno!!! Grazie ai tread e a quelli che mi hanno risposto e che mi sono stati vicini vicini
x nsajuve
ciao, allora tu sei il mio vicino di oggi :-) si si era giusto quello che mi hai detto.. ancora grazie... mi ha dato 20... poi ho fatto l'orale 26.. tot 23... sono contentissima...
X tutti
grazie a tutti quelli che hanno risp a questo thred e anche grazie e voi che sono riuscita a passare l'esame :-)
a presto... :-)
All times are GMT. The time now is 03:33. | Show all 58 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.