Skrypt wykonywalny na lubuntu

Cześć,

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.

Pozdrawiam.

#!/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 :slight_smile:
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:

[Desktop Entry]
Type=Application
Exec="/home/nazwa_użytkownika/skrypt.sh"
X-GNOME-Autostart-enabled=true
Name=Pingcheck

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 wiedziałem, ze to aż tyle linii kodu wymaga :open_mouth:
Dzięki bardzo, jutro przetestuje :wink:

Nie wymaga aż tyle, ale napisałem z myślą o ewentualnej rozbudowie skryptu.
Poza tym większość zajmują komentarze :wink: i formatowanie, aby był dla Ciebie czytelny.
Pamiętaj o katalogu logów, aby istniał, bo skrypt nie zadziała.