svuotare un file in uso

Per chi ha poca pratica con questi prodotti, quì non troverà  dei guru in grado di snociolare risposte a tutti i quesiti, ma delle persone appassionate che mettono a disposizione tutta la loro passione per trovare insieme le soluzioni migliori.

Moderatori: isex, mariobrossh, donatella

Rispondi
Avatar utente
noxjohn
Messaggi: 37
Iscritto il: sab 13 set 2008 11:15 am

svuotare un file in uso

Messaggio da noxjohn »

avrei bisogno di far eseguire un operazione a un sistema UNIX di svuotare un file in uso.

per ora lo script è così composto:

cat /directory/nomefileinuso > /directory/filediarchiviazione
cat /directory/filevuoto > /directory/nomefileinuso

ma il file in uso continua a mantenere in memoria le informazioni che aveva fino a quel momento.

La cosa secondo voi potrebbe cambiare usando come file vuoto

/dev/null


oppure

/dev/zero

Da considerare che non posso cancellare il file e dargli lo stesso nome perchè mi cambierebbe i-node e non funzionerebbe + il sistema di archiviazione.

Avevo pensato anche a una sottrazione del contenuto dei 2 file in modo da averne uno con le sole informazioni da quel momento in poi, ma non so se ne esiste un comando per farlo.

HELP ME....
... non dispero mai ... AIUTOOOOOOOO...
Orso
Messaggi: 8
Iscritto il: mar 05 lug 2011 11:47 am
Località: Fiumicino
Contatta:

Messaggio da Orso »

cat visualizza il contenuto del file; > reindirizza l'output di un qualsiasi comando su un file. Per cui così facendo stai duplicando il contenuto del primo file.

Per ottenere lo "svuotamento" del primo file direi che hai due possibilità:
1)
- crei un file nuovo vuoto
- rinomini quello vecchio in *.old (o come preferisci tu)
- rinomini il file vuoto col nome di quello pieno
Questo però non sempre funziona: se il file pieno è in uso, il sistema potrebbe impedirne il rename.
2)
- utilizzi cat ma non con > bensì con <, cioè reindirizzi l'output (di un file vuoto) sul file che vuoi svuotare.

Ora provo un po' di cosette e poi ti dico....
Per chi capisce la strada, nessuna spiegazione è necessaria; per chi non la capisce, nessuna spiegazione è possibile!
Orso
Messaggi: 8
Iscritto il: mar 05 lug 2011 11:47 am
Località: Fiumicino
Contatta:

Messaggio da Orso »

cat /dev/null > tuofile
funziona!
L'unico "problema" è il proprietario del processo che tiene aperto il file e quello che esegue il cat. Se fai cat come root non dovresti avere problemi
Per chi capisce la strada, nessuna spiegazione è necessaria; per chi non la capisce, nessuna spiegazione è possibile!
Avatar utente
noxjohn
Messaggi: 37
Iscritto il: sab 13 set 2008 11:15 am

Messaggio da noxjohn »

Provato, ma il problema è che si svuota per un attimo e poi è al punto di prima come se non fosse mai stato svuotato.
provato anche a killare il processo e a reinizializzarlo, ma purtroppo fa parte di una catena di processi e in fase di riavvio non mi torna in linea con gli altri processi.
per chiudere e riaprire il processo il sistema aspetta un segnale (manuale) che non sono riuscito a capire che processo attiva e se posso simularlo o meno, perchè fa parte di un altro sistema operativo in uso negli anni 50/60 e di cui non esistono manuali. Attualmente questo sistema è emulato, ma non riesco a comprenderlo fino in fondo.
per questo motivo sto cercando di aggirarlo.
grazie dei suggerimenti.
... non dispero mai ... AIUTOOOOOOOO...
Rispondi