Puncte:0

Deblocați un fișier jurnal blocat de un alt proces Linux

drapel ng

Am scris un script pentru a goli/anuliza un fișier jurnal o dată pe zi pe serverul meu ubuntu.

Calea fișierului jurnal: /var/log/turn.log

Am încercat mai jos comenzile în acest scop:

Comenzi: sudo cp /dev/null /var/log/turn.log sudo truncate -s 0 /var/log/turn.log

Dimensiunea fișierului nu se reduce prin utilizarea niciunei comenzi. Bănuiesc că fișierul este blocat de procesul de scriere a jurnalelor în el.

$ sudo fuser /var/log/turn.log
/var/log/turn.log : 964 
$ ps 964
COMANDA PID TTY STAT TIME

964 ? Ssl 0:54 /usr/bin/turnserver -c /etc/turnserver.conf -o -v
$

Cum pot debloca acest fișier, astfel încât scriptul meu să poată anula fișierul jurnal în fiecare zi la un moment dat.

bac0n avatar
drapel cn
cred că vrei să faci `sudo sh -c '> /var/log/turn.log'`
Soren A avatar
drapel mx
De ce nu folosești utilitarul standard logrotate pentru asta? Acesta este deja instalat și configurat (în /etc/logrotate.conf și /etc/logrotate.d). Vezi `man logrotate`. De asemenea, rețineți că, dacă un proces are fișierul jurnal deschis, datele nu vor fi șterse de pe disc până când procesul închide fișierul.
bac0n avatar
drapel cn
`killall -HUP turnserver` ar trebui să recitească fișierul jurnal.
Puncte:2
drapel cn

Cum pot debloca acest fișier, astfel încât scriptul meu să poată anula fișierul jurnal în fiecare zi la un moment dat.

Opriți turnserverul înainte de a o face

sudo cp /dev/null /var/log/turn.log 
sudo truncate -s 0 /var/log

și porniți-l după ce se termină. Dacă este acceptat, este posibilă doar o repornire după golirea fișierului. aș fi folosit > /var/log/turn.log ca root sau din crontab ca root; dar acest lucru păstrează și fișierul așa cum este până la eliberare. Trunchierea nu este necesară.

Pe lângă modificarea turnsever-ului pentru a nu bloca fișierul tot timpul (folosind un serviciu, aș bloca fișierul atunci când este necesar și undeva în buclă închide/redeschide jurnalul), metoda mai generică ar fi să adaugi jurnalul la logrotate și să se ocupe de logrotate. aceasta: comprimați fișierul și eliminați fișierele comprimate atunci când sunt mai vechi de x zile. Aceste jurnale mai vechi nu sunt niciodată atinse de turnserver.

Cyrus avatar
drapel cn
`sudo > /var/log/turn.log` este o sintaxă greșită.
Puncte:0
drapel kr

Încercați această linie de comandă, ar trebui să schimbe vechiul fișier jurnal cu unul nou gol. Fișierul jurnal vechi va avea *.vechi extensia de fișier.

sudo cp -a --attributes-only /var/log/turn.log /var/log/turn.log.new &&\
sudo ln -f /var/log/turn.log /var/log/turn.log.old &&\
sudo ln -f /var/log/turn.log.new /var/log/turn.log &&\
sudo unlink /var/log/turn.log.new && sync ||\
echo „Eroare: Ceva a mers prost”.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.