Potrzebuję pomocy z utworzeniem skryptu wykonywalnego, który będę mógł ustawić na automatyczne wywołanie z systemem. Niestety na pisaniu skryptów w linuxie się nie znam.
System Lubuntu 16.04
Cel skryptu:
Pingowanie bramy i wybranej strony Internetowej np. wpolsce .pl z zapisaniem logu.
Skrypt będzie za każdym uruchomieniem zapisywał do nowego pliku. (przykładowo po pierwszym uruchomieniu jak urządzenie zostanie zrestartowane to sprawdzi, że plik ping1.log już istnieje i utworzy ping2.log etc.)
Fajnie jak będziecie mogli także podrzucić informację jak dodać taki skrypt do “autostartu” na tym systemie.
#!/bin/bash
#stałe do konfiguracji
log_dir="$HOME/logi" #katalog logów
max_count=10 #maksymalna ilość logów
mygate="123.123.123.123" #adres bramy do pingowania
siteping="www.google.pl" #adres strony do pingowania
function check_logs {
#sprawdzanie najnowszego pliku i wyciąganie z jego nazwy liczby z przekierowaniem błędów pustego katalogu i złego argumentu basename do NULL
last_num=$(basename $(ls -At $log_dir/*.log 2>/dev/null | grep -o '[0-9]*' | head -n 1) 2>/dev/null)
}
#GŁÓWNY SKRYPT
#przechodzenie do katalogu logów
cd $log_dir
#wywołanie funkcji sprawdzania ostatniego pliku z logiem
check_logs
#sprawdzenie, czy zwrócony jest pusty wynik - jeżeli tak to ustawienie licznika na 1
if [ -z "${last_num}" ]; then
last_num=1
else
#inkrementacja last_num jeżeli znaleziono poprzedni plik
((last_num++))
fi
#dodawanie daty/czasu na początek i wyników pingowania bramy i strony do loga
date > ping$last_num.log
ping -c 1 -w 1 $mygate >> ping$last_num.log
ping -c 1 -w 1 $siteping >> ping$last_num.log
#sprawdzanie, czy przekroczono dopuszczalną ilość logów, jeżeli tak to skompresowanie i usunięcie starych
if [ "$last_num" -eq "$max_count" ]; then
tar -czf oldlogs_$(date +%d-%m-%Y_%H-%M).tar.gz *.log
rm $log_dir/*.log; \
fi
To tak na szybko naskrobałem
Co do autostartu to utwórz sobie plik np. pingcheck.desktop w katalogu /home/nazwa_użytkownika/.config/autostart/
(lub autostart z wielkiej litery - nie wiem jak tam masz)
Jako zawartość pliku:
Nie zapomnij oczywiście nadać plikowi desktop jak i skryptowi prawa do uruchomienia: chmod +x /home/nazwa_użytkownika/.config/autostart/pingcheck.desktop && chmod +x /home/nazwa_użytkownika/skrypt.sh
Nie wymaga aż tyle, ale napisałem z myślą o ewentualnej rozbudowie skryptu.
Poza tym większość zajmują komentarze i formatowanie, aby był dla Ciebie czytelny.
Pamiętaj o katalogu logów, aby istniał, bo skrypt nie zadziała.