Linux przydatne skrypty

2024-02-11

Out of the box

Linuxowe systemy operacyjne od samego początku rozpieszczają administratorów, dostarczając aż trzy narzędzia do pisania skryptów i zarządzania systemem: Bash, Perl i Python. Niezależnie od tego, z którym z tych języków masz największe doświadczenie lub z który najbardziej lubisz pracować, już po świeżej instalacji systemu masz możliwość korzystania z każdego z nich do obsługi systemu. To elastyczność, która daje administratorom swobodę wyboru narzędzia najlepiej odpowiadającego ich potrzebom i preferencjom.

Wszystkie skrypty dostępne są na githubie.


Logwatch - obserwacja logów aplikacji

Oto jeden z tych niezbędnych skrótów dla każdego administratora: tworzymy tutaj skrót logwatch, który wyświetli ostatnie 5 linii z każdego pliku z rozszerzeniem *log znajdującego się w katalogu, w którym został uruchomiony, i który był modyfikowany w ciągu ostatnich 5 minut.

alias logwatch='watch '\''find . -type f -mmin -5 -name "*.*log" -exec echo "-------------------------> {} <-------------------------" \; -exec tail -5 {} 2>/dev/null \; '\'''

Ten skrypt jest nieoceniony w sytuacjach, gdy musimy szybko przejrzeć wpisy w wielu plikach jednocześnie. Jest także przydatny, gdy nie jesteśmy pewni, do których plików nasze aplikacje zapisują dane. Dzięki niemu możemy w prosty sposób monitorować i analizować aktualne zdarzenia w logach, co ułatwia diagnozowanie problemów oraz śledzenie działania systemu lub aplikacji.


Czyszczenie logów

Jako uzupełnienie do poprzedniej komendy, może wystąpić sytuacja, w której konieczne będzie wyzerowanie naszych logów. W takim przypadku, prezentowana komenda wyczyści wszystkie pliki .log z katalogu /log.

find /log -type f| grep .log$ | while read file; do :> $file; done


Zabijanie wielu procesów

Czasem, gdy aplikacje uruchomione w naszym systemie składają się na więcej niż jeden proces, jedyną opcją jest użycie komendy kill na każdy z tych procesów. Poniższa linijka jest przygotowana do zamknięcia wszystkich procesów, których nazwy zawierają wspólny fragment dostępny w poleceniu ps.

ps -aux | grep APP_NAME | perl -lane 'print $F[1]' | while read proc; do kill -9 $proc; done

Czasami, gdy używamy komendy do zamykania procesów, musimy pamiętać, żeby nie zamknąć aktywnej sesji, z której aktualnie korzystamy.

Systemowym odpowiednikiem dla naszej komendy jest: pkill -f "fragment_nazwy"


Czyszczenie śmieci po procesach / zwalniamy miejsce na dysku

Po zakończeniu zabijania procesów, warto również oczyścić usunięte pliki, które mogą zostać na dysku. Jest to dobra praktyka, szczególnie w przypadku braku miejsca na dysku i niepewności co do dalszych działań.

 lsof -nP | grep '(deleted)' |  perl -lane 'print $F[1]' | while read dir; do cd /proc/$dir/fd/; ls -l | grep '(deleted)' | perl -lane 'print $F[8]' |  while read file; do :> /proc/$dir/fd/$file; done done

Szybkie udostępnienie katalogu przez weba

Rozważenie uruchomienia szybkiego serwera w Pythonie w wybranym katalogu może być dobrym pomysłem, szczególnie jeśli potrzebujemy szybkiego dostępu do plików na serwerze bez zbędnego zachodu związanego z scp lub serwerem ftp. Gdy serwer jest uruchomiony, wystarczy wejść na przeglądarkę i wpisać adres serwera wraz z portem, na którym udostępniliśmy nasz katalog, aby uzyskać szybki dostęp do plików.

python3 -m http.server 8888

Szybki dopisek sudo

Unikanie stałej pracy na koncie root'a to zalecana praktyka z punktu widzenia bezpieczeństwa systemu. Aby szybko dodać sudo do poprzednio wpisanej komendy, możemy użyć skrótu, który odwołuje się do ostatnio użytej komendy i uruchamia ją z uprawnieniami sudo. To szybkie rozwiązanie, które oszczędza czas, szczególnie podczas pisania długich komend.

 sudo !!





Czy masz w głowie pomysł na aplikację, która mogłaby odmienić sposób, w jaki pracujesz? A może masz przed sobą trudny problem i potrzebujesz wsparcia? 
Nie wahaj się! 
Zapraszam do zakładki "Kontakt", gdzie możesz podzielić się swoimi myślami. Razem zastanowimy się, jak możemy przekuć Twoje pomysły w działanie. 
Pamiętaj, że szukanie pomocy to nie oznaka słabości, ale odwagi i determinacji w pokonywaniu wyzwań.