Puncte:2

tail command retry flag nu funcționează cu wildcards?

drapel tr

Vreau să urmăresc o grămadă de nume de directoare necunoscute care conțin un anumit fișier inexistent, de exemplu:

coada -F /tmp/*/app.log

Cu toate acestea, acest lucru nu funcționează așa cum s-a intenționat cu wildcard: dacă creez un fișier cu acea cale, coadă nu va începe să urmăresc decât dacă repornesc comanda. Pe de altă parte, dacă alerg:

coada -F /tmp/example/app.log

de îndată ce apare fișierul, comanda va afișa: coada: a apărut „/tmp/example/app.log”; următorul fișier nou

Am incercat -f nume de fișier --reîncercați combinație în loc de -F iar rezultatul este același.

Cum se poate rezolva asta și există alte modalități de a atinge același obiectiv?

djdomi avatar
drapel za
Răspunde asta la întrebarea ta? [Monitorizați continuu jurnalele cu coada care sunt rotite ocazional](https://serverfault.com/questions/53699/continuously-monitor-logs-with-tail-that-are-occasionally-rotated)
iomv avatar
drapel tr
@djdomi Nu, nu, acea întrebare explică cum să folosești steag-ul `-F`, pe care, de fapt, mă subliniez în întrebarea mea că știu cum îl folosesc, dar cred că nu funcționează așa cum s-a intenționat cu metacaracterele
Puncte:4
drapel it

/tmp/*/app.log va fi extins de shell (BASH presupun). Dacă există potriviri, atunci aceasta va fi extinsă la acele potriviri și apoi transmisă ca argumente către coadă

$ find /tmp/test -type f
/tmp/test/a/app.log                                                                                                                                                                                                                                
/tmp/test/b/app.log                  

$ echo /tmp/test/*/app.log                                                                                                                                                                                        
/tmp/test/a/app.log /tmp/test/b/app.log

Deci, în cazul de mai sus, coadă ar fi configurat să urmeze în mod specific app.log în A și app.log în b. Dacă, la momentul în care a început, app.log în b nu a existat, nu ar fi urmat. Dacă sunt create directoare sau fișiere noi, nu le va urma.

În cazul în care nu există potriviri, șirul neexpandat va fi transmis ca argument către coadă

$ echo /tmp/test/*/app2.log                                                                                                                                                                                     
/tmp/test/*/app2.log               

Deci, va încerca să urmeze calea/numele de fișier literal /tmp/test/*/app2.log, care probabil nu va exista niciodată (sau dacă există, a fost creat într-un mod foarte ciudat, deoarece având * deoarece un nume de director nu este ceva ce aș sfătui să fac în circumstanțe normale).

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.