Pomoc Entware i aplikacje dla nie admina?

Remus

Passing Basics
Beginner
16 Styczeń 2016
17
3
3
Bytom
QNAP
TS-x53A
Ethernet
1 GbE
Witam,
Odpaliłem u siebie na qnap speedtest-cli wg tego opisu: Rozwiązany - Jak zbadać szybkość łącza na qnap ?. (dotychczas speedtest miałem na raspberry tylko, ale przy moim łączu trochę mi obcinało - raspberry ma ograniczenie do szybkowści usb2.0). Otóż speedtest-cli działa u mnie na qnap ale tylko jak zaloguję się po ssh jako administrator i odpalę ręcznie a chciałbym ten proces zautomatyzować, dodając skrypt do crona (bo w tej sytuacji nie chce mi to działać nawet, jak w cronie wydaję polecenie sudo ./speedtest-cli). Doszedłem do tego, że skrypt mi nie działa z poziomu innego użytkownika niż admin, gdyż python jest zainstalowany dla admina. Jak odpalam speedtest-cli z poziomu użytkownika to dostaję:
Kod:
Traceback (most recent call last):
  File "./speedtest-cli", line 26, in <module>
    import timeit
ImportError: No module named timeit
W ogóle to entware działa mi tylko z poziomu admina, tzn jak zaloguję się do ssh na innego użytkownika to nie mam dostępu do tego, co zainstalowałem z entware, min. mc i nie mam dostępu do entware, tzn nic nie mogę instalować wydając polecenie opkg instal .... I pewnie to stąd bierze się, że wszystko co instaluję z entware jest tylko dla użytkownika admin.
Jak to zmienić, żeby z poziomu użytkownika z uprawnieniami admina też mieć dostęp do tego wszystkiego?



Wersja oprogramowania Firmware: 4.3.6.0895 Build 28/03/2019
Model serwera: QNAP TS-253A
 
bo qpkg sa pisane tak zeby działały pod userem admin

sprawdz co masz w zmiennej $PATH i dopisz przed odpaleniem skryptu.
swoją drogą - na damski parasol ta zabawa z innym userem ? ... po restarcie , Twoje zmiany szlag trafi.

odpalaj to jako admin i miej to z głowy.
 
Ok, dodanie brakujących ścieżek pomogło (z tego co wyczytałem to do czasu wylogowania ale to już coś). Dzięki.
Ale crontab dalej nie chce tego odpalać. Używam Webcrontab z repozytorium. Próbuję systemowego crona, ale też nie chce działać. No chyba to jest systemowy, bo znajdujący się tu: /etc/config/crontab chociaż polecenie: which crontab wskazuje: /opt/bin/crontab. Jednak otwarcie crona z tej lokalizacji to same krzaki. Pytanie, czy ten crontab w /etc/config to prawidłowa ścieżka, skoro polecenie which pokazuje co innego ??
bo qpkg sa pisane tak zeby działały pod userem admin

sprawdz co masz w zmiennej $PATH i dopisz przed odpaleniem skryptu.
swoją drogą - na damski parasol ta zabawa z innym userem ? ... po restarcie , Twoje zmiany szlag trafi.

odpalaj to jako admin i miej to z głowy.
No ale z crona nie chce mi tego odpalać, nawet jak dodam sudo przed poleceniem odpalenia

Aha, crontab -e nie działa, zwraca: crontab: can't change directory to '/opt/var/spool/cron/crontabs': No such file or directory więc edytuję fizycznie plik a potem przeładowuję crontaba - jednak nie wiem, czy edytuję prawidłowy plik (ale trochę wpisów tam jest)
 
no postępowałem wg tych wskazówek, ale nic to nie daje (wydaje mi się, że zadanie w ogóle się nie uruchamia). Utworzyłem dla testu coś takiego:
*/1 * * * * /opt/domoticz/scripts/python/speedtest-cli >> /opt/domoticz/scripts/python/log.txt
czyli co 1 minutę powinien się uruchomić a wynik uruchomienia przesłać do pliku log.txt (tak to rozumiem). Niestety plik log.txt jest cały czas pusty.
Oczywiście komendy: crontab /etc/config/crontab && /etc/init.d/crond.sh restart po edycji wykonuję. Notabene pierwsza część zwracała mi błąd: /opt/var/spool/cron/crontabs': No such file or directory bo rzeczywiście brakowało tam katalogu cron i crontabs (utworzyłem je ręcznie, wrzuciłem tam plik crontab i komenda nie zwraca już błędu).
Jest jakiś inny sposób, żeby sprawdzić, czy crontab działa albo jaki jest wynik wywołania zadania ??
 
Polecam CZYTANIE ze ZROZUMIENIEM co PRODUCENT napisał:

upload_2019-4-7_22-7-14.png


żaden crontab coś tam !
 
Ok, ten Twój sposób pomiaru łącza jest lepszy i działa z wiersza poleceń ale wciąż nie działa mi z crona. Oczywiście edytuję plik tekstowy a nie wywołuję polecenia crontab. Mimo dodania wpisu:
*/1 * * * * /usr/local/bin/speedtest.sh >> /opt/domoticz/scripts/python/log.txt
skrypt się chyba nie uruchamia (dodałem w nim opcję wysyłania danych do domoticz ale nic mi się tam nie zmienia a powinno co minutę). Dodatkowo plik log.txt jest pusty (utworzyłem go sam ale jest cały czas pusty). Mam coś nie tak z tym crontabem bo z wiersza poleceń mi wszystko działa jak należy.
Ok, doczytałem drobny druk: */2 - co 2 dozwolona wartość (np. w pierwszej kolumnie będzie to 0,2,4,6...56,58), zmieniłem na 2 ale to i tak nie pomaga.
 
Wyedytowałeś CRONa zgodnie z tym co podesłał wyżej pigers? Pamiętaj też o zrestartowaniu usługi po edycji. Uruchamianie zadań można w łatwy sposób zweryfikować poprzez obserwację z użyciem narzędzia htop.
 
  • Lubię to
Reakcje: kaktus
Zaczął mi działać crontab. Tutaj chyba znalazłem rozwiązanie: [HELP]Crontab not running scripts - QNAP NAS Community Forum
Po wydaniu polecenia:
Kod:
 /usr/bin/crontab /etc/config/crontab
zaczął mi działać bez problemów po wykonaniu restartu:
Kod:
/etc/init.d/crond.sh restart
Dziękuję za pomoc 'pigers' i za linka do pomiaru łącza, Twój skrypt jest dużo prostszy (łatwiejszy do edycji).