Nowe posty

Autor Wątek: Kasowanie plików .pid  (Przeczytany 2626 razy)

riczardos

  • Gość
Kasowanie plików .pid
« dnia: 2014-03-11, 07:38:53 »
Witam,
jestem w trakcie pisania skryptu pilnującego porządku w aplikacjach ale nie poradzę już sobie sam.

Skrypt ma między innymi za zadanie wyszukać wszystkie pliki .pid oraz skasowanie tych nieużywanych.
Polecenie find z opcją -mtime nie za bardzo pasuje bo .pid czasami są na 1-2dni a czasami 2-3tygodnie.
Wymyśliłem sobie że wyszukam wszystkie .pid i skasuję całość poza tym najmłodszym, jednak jak tego dokonać?
Może jakiś inny pomysł?

Bardzo proszę o jakieś sugestie.

Z góry dzięki za pomoc :)

darkdancer

  • Gość
Kasowanie plików .pid
« Odpowiedź #1 dnia: 2014-03-11, 15:58:48 »
Cytat: riczardos
Wymyśliłem sobie że wyszukam wszystkie .pid i skasuję całość poza tym najmłodszym, jednak jak tego dokonać?
Jakoś tak chyba:
Kod: bash [Zaznacz]
find  . -name '*.pid' -printf "%T@\\t%p\\n" | sort -nr | cut -f2 | tail -n+2

Powinno zwrócić listę plików do usunięcia poza "najmłodszym" (najmłodszy w rozumieniu z najwcześniejszym czasem modyfikacji).
Cytat: riczardos
Może jakiś inny pomysł?
Skąd wiesz, że *.pid jest nieużywany? Co to za aplikacja? Za mało informacji...

riczardos

  • Gość
Kasowanie plików .pid
« Odpowiedź #2 dnia: 2014-03-13, 10:31:56 »
Cytat: darkdancer
Skąd wiesz, że *.pid jest nieużywany? Co to za aplikacja? Za mało informacji...
Bo sam pisałem prosty skrypt startowy do aplikacji, czasem aplikacja się restartuje i tworzy nowy pid aby można było ją skryptem ubić. Aplikacji działa 10 więc ręczne pilnowanie porządku jest uciążliwe, skrypt będzie kasować logi starsze niż Xdni, kasować pidy itp

Polecenie pokazuje prawidłowo "nieużywane" pidy jednak nie potrafię ich skasować wykonując -exec rm {}  - pewnie nieprawidłowa składnia, jestem początkujący w pisaniu skryptów...

Prosiłbym o przedstawienie jak wyszukać i skasować te pliki jednym poleceniem, chyba że muszę pokombinować z zapisem do pliku i dopiero kasować pliki z pliku tekstowego?

darkdancer

  • Gość
Kasowanie plików .pid
« Odpowiedź #3 dnia: 2014-03-13, 11:06:44 »
Cytat: riczardos
Aplikacji działa 10 więc ręczne pilnowanie porządku jest uciążliwe, skrypt będzie kasować logi starsze niż Xdni, kasować pidy itp
Dużo lepszy byłby skrypt pilnujący/sprawdzający czy plik *.pid odpowiada rzeczywiście uruchomionej w systemie aplikacji (może działać chyba Xdni w końcu bez "restartu"?)
Cytat: riczardos
Polecenie pokazuje prawidłowo "nieużywane" pidy jednak nie potrafię ich skasować wykonując -exec rm {}  - pewnie nieprawidłowa składnia, jestem początkujący w pisaniu skryptów...
find zwraca wszystkie pliki, usuwanie wszystkich nie wchodzi w grę, my chcemy wszystkie prócz najnowszego, więc stąd moje "filtrowanie". Jeśli jesteś pewien, że lista jest poprawna pliki możesz skasować jednym poleceniem:
Kod: bash [Zaznacz]
find  . -name '*.pid' -printf "%T@\\t%p\\n" | sort -nr | cut -f2 | tail -n+2 | xargs rm -fv

riczardos

  • Gość
Kasowanie plików .pid
« Odpowiedź #4 dnia: 2014-03-13, 12:55:40 »
Wszystko działa pięknie!

Podziękować i można zamknąć temat.

---edit Lord Darius

Wedle życzenia.