pectosol pisze:
Witam.
Gdzie najlepiej jest umiescic zmienną dla skryptu wykonywanego cyklicznie. np co 5min ?
Czyli:
mamy skrypt który coś oblicza
wartość zapisuje do tej zmiennej
kończy pracę
...
po jakimś czasie uruchamia sie go np z crona
skrypt odczytuje zmienną
znowu coś liczy
zapisuje wynik
kończy pracę
...
i tak w kółko.
Zależy co chcesz osiągnąć. Po pierwsze jeśli chcesz, aby wynik zliczania przetrwał reset systemu, to zapis do pliku i czytanie z niego jest jedynym rozwiazaniem. Musisz tylko dodać warunek sprawdzający czy plik istnieje i jeśli nie to tworzący go i deklarujący w nim zmienną z wartością początkowa.
Jesli nie zalezy ci żeby wynik przetrwał reset to poczytaj o zasiegu zmiennych. export niestety nic ci tutaj nie pomoże bo każdy następny wywoływany script będzie uruchamiał swój subshell i nie będzie widział zmiennych z innego subshella. Można by spróbowac stworzyć zmienną środowiskową w profilu użytkownika, który bedzie ten script uruchamiał, ale wątpię, żeby to pomogło - o ile się nie mylę to dziecko nie może zmieniać wartości zmiennych w shellu rodzica... musiałbyś to sprawdzić.
Można jeszcze, zamiast uruchamiać kolejne scripty z crona, zastosować nieskończona pętlę i w takiej sytuacji na początku scriptu deklarujesz zmienną a potem w trakcie wykonywania scriptu ją modyfikujesz. na koniec możesz zapisywac do pliku zeby wartość przetrwała restart komputera. Pierwsze uruchomienie scriptu po restarcie musiałoby czytać wartośc tej zmiennej z pliku. Podobnie jak w sytuacji gdy zapisujesz wartość do pliku musisz dodać warunek sprawdzający istnienie pliku (lub zmiennej).
pectosol pisze:
obecnie wynik zapisuję i odczytuję z pliku - ale niepodoba mi się to rozwiaznie bo przy większej ilości skryptów dysko bedzie ciągle mielił.
bez przesady - sysloga i tak pewnie nie przebijesz ilością operacji dyskowych...
Ja bym zapisywał do pliku, w jednym z tych katalogów (w takiej właśnie kolejności):
/var/lib/nazwa_scriptu
/var/local/nazwa_scriptu
/var/state/nazwa_scriptu