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....
svuotare un file in uso
Moderatori: isex, mariobrossh, donatella
svuotare un file in uso
... non dispero mai ... AIUTOOOOOOOO...
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 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!
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
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!
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.
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...