Tak wygląda skrypt pisany dosłownie z kolana...
Cytat
#!/bin/sh
cd /opt/etc/mrtg
dt=$(date +%d-%m-%y);
rsync=/opt/bin/rsync
key_patch=/opt/home/root
log=/opt/mnt/log
{
echo ------------------------------------------------
echo $(date +%H:%M:%S) Przygotowuje statystyki dla MRTG
echo ------------------------------------------------
echo
echo Checking Memory!!
./script/memory.sh &
pid=$!
wait $pid
echo OK.
sleep 5
echo Checking Network!
./script/network.sh &
pid=$!
wait $pid
echo OK.
sleep 5
echo Checking CPU!
./script/cpu.sh &
pid=$!
wait $pid
echo OK
sleep 5
echo Checking Uptime!!
./script/uptime.sh &
pid=$!
wait $pid
echo OK.
sleep 5
echo Checking HDD!!
./script/hdd.sh &
pid=$!
wait $pid
echo OK.
sleep 5
echo Ping to Google!!
./script/ping-google.sh &
pid=$!
wait $pid
echo OK.
sleep 180
echo
echo ------------------------------------------------
echo $(date +%H:%M:%S) Przesylam statystyki dla MRTG
echo ------------------------------------------------
$rsync -avO --no-perms -e "ssh -i $key_patch/tenda" /opt/etc/mrtg/data/ user@XXX.XXX.XXX.XXX:/etc/mrtg &
pid=$!
echo "PID: $pid"
wait $pid
echo "Exit status: $?"
echo
echo ------------------------------------------------
echo $(date +%H:%M:%S) Zakonczono
echo ------------------------------------------------
} >> $log/mrtg_$dt.log
Jeżeli odpalę z rączki - Skrypt wykonuje się prawidłowo
Jeżeli z crona... dostaje "Exit status: 12"
Nawet sama komenda rsync odpalana z rączki wykonuję się prawidłow, a w skrypcie z crona już nie...
Połączony z 15 lutego 2021 10:52:05:
Problem rozwiązany.
Jednak brak pełnych ścieżek do binarek to był problem...
Cytat
$rsync -avO --no-perms -e "/opt/bib/ssh -i $key_patch/tenda" /opt/etc/mrtg/data/ user@XXX.XXX.XXX.XXX:/etc/mrtg &
Jak widać pogrubionym tłustym pismem... pełną ścieżkę było trzeba podać do "ssh" i bądź tu czasem mądry. Tomato widać musi być jak za rączkę... w OpenWRT i DDWRT czy nawet Debian i Ubuntu... aż tak źle było..
ten sam skrypt na różnych systemach potrzebuje różnych rozwiązań.
Edytowany przez wo0t dnia 15-02-2021 10:52
|