vjdj 4 Zgłoś post Napisano Luty 25, 2017 W jaki sposób prawidłowo odpalić skrypt w incrontab na Debianie? Sam incron działa dobrze ponieważ zdefiniowane zadanie dodawania wpisu do logu w przypadku działania, działa prawidłowo. Również skrypt odpalony sam działa prawidłowo. Wpisy w incrontab: /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/logger "Sciezka: $@/$# Zdarzenie:$%" /etc IN_MODIFY,IN_CREATE,IN_DELETE /root/skrypt Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość mariaczi Zgłoś post Napisano Luty 25, 2017 Dokładnie to, o co pytasz: https://www.howtoforge.com/tutorial/trigger-commands-on-file-or-directory-changes-with-incron/ 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 25, 2017 Powiem szczerze, że widziałem ten link i albo nie widzę/nie rozumiem ale tam nie ma jak odpalić własny skrypt. Jest jak wywoływać polecenia. Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 25, 2017 Skrypt w czym? Jesteś pewien że incron ma dostęp do tego katalogu i odpowiedni chmod? 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 25, 2017 Skrypt jakikolwiek: #!/bin/sh date +"%m/%d/%Y %H:%M:%S $HOSTNAME" >> /root/log.txt Chmod dodany "+x "na wywoływanie. Skrypt odpalany ./skrypt działa. Zlokalizowany w /root/skrypt Root dodany w incron.allow Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 25, 2017 (edytowany) Spróbuj zrobić z tego jeden wpis i ręcznie wskazać interpreter. /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/logger "Sciezka: $@/$# Zdarzenie:$%" && /bin/sh /root/skrypt Edytowano Luty 25, 2017 przez Ubinoob (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość mariaczi Zgłoś post Napisano Luty 25, 2017 incron może nie znać $PATH. Daj w skrypcie pełne ścieżki do binarek z których w nim korzystasz. Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 25, 2017 (edytowany) incron może nie znać $PATH. Daj w skrypcie pełne ścieżki do binarek z których w nim korzystasz. Dobrze kombinuje? echo $PATH i podstawiam /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/vesta/bin /root/skrypt Bo też nie działa Spróbuj zrobić z tego jeden wpis i ręcznie wskazać interpreter. /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/logger "Sciezka: $@/$# Zdarzenie:$%" && /bin/sh /root/skrypt Nie zadziałało. Edytowano Luty 25, 2017 przez vjdj (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 25, 2017 Sprawdź czy on uruchamia to faktycznie na roocie (w przeciwnym wypadku nie uda mu się dostać do katalogu): /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/whoami >> /tmp/test.log Jeśli faktycznie na roocie, to spróbuj w swoim skrypcie zmienić: /bin/date +"%m/%d/%Y %H:%M:%S $HOSTNAME" >> /root/log.txt Ewentualnie można spróbować zobaczyć o jest w $PATH i próbować je ustawić. Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 26, 2017 Sprawdź czy on uruchamia to faktycznie na roocie (w przeciwnym wypadku nie uda mu się dostać do katalogu): /etc IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/whoami >> /tmp/test.log Nic nie dodaje. Path: echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/vesta/bin Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość mariaczi Zgłoś post Napisano Luty 26, 2017 (edytowany) Gdzie Ty to "echo $PATH" wykonujesz? W konsoli jak jesteś zalogowany? Tu na pewno Ci zadziała bo jesteś zalogowany i masz tą zmienną ustawioną. Podpowiadając "$PATH" chodziło mi o to, że incron "może nie znać" ścieżek do binarek. Usługę incron'a masz uruchomioną, działa? Edycja: Prawdopodobnie jeszcze, na co nie zwróciłem uwagi wcześniej, masz "/etc" a nie "/etc/" - dodaj forward slash na końcu. Edytowano Luty 26, 2017 przez mariaczi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 26, 2017 Pokazałem tylko co zwraca "path" bez sensu w sumie i niepotrzebnie. Przez to PATH rozumiem, że mam podawać pełną ścieżkę jak poniżej np. Poprawiłem slash incrontab -l /etc/ IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/whoami >> /tmp/test.log Incron działa service incron status -l ● incron.service - file system events scheduler Loaded: loaded (/lib/systemd/system/incron.service; enabled) Active: active (running) since nie 2017-02-26 10:41:32 CET; 6min ago Process: 252 ExecStart=/usr/sbin/incrond (code=exited, status=0/SUCCESS) Main PID: 270 (incrond) CGroup: /system.slice/incron.service └─270 /usr/sbin/incrond lut 26 10:41:31 serwer.ovh.net systemd[1]: Starting file system events scheduler... lut 26 10:41:32 serwer.ovh.net incrond[252]: starting service (version 0.5.10, built on Mar 20 2014 22:57:12) lut 26 10:41:32 serwer.ovh.net incrond[270]: loading system tables lut 26 10:41:32 serwer.ovh.net incrond[270]: loading user tables lut 26 10:41:32 serwer.ovh.net incrond[270]: loading table for user root lut 26 10:41:32 serwer.ovh.net incrond[270]: ready to process filesystem events lut 26 10:41:32 serwer.ovh.net systemd[1]: Started file system events scheduler. lut 26 10:44:10 serwer.ovh.net incrond[270]: (root) CMD (/usr/bin/whoami >> /tmp/test.log) lut 26 10:44:10 serwer.ovh.net incrond[270]: (root) CMD (/usr/bin/whoami >> /tmp/test.log) Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 26, 2017 I nadal nie ma nic w /tmp/test.log? Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 26, 2017 I nadal nie ma nic w /tmp/test.log? Nie, pusto. Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 26, 2017 Ale plik jest? Zobacz z ciekawości (jeśli jest pusty plik): /etc/ IN_MODIFY,IN_CREATE,IN_DELETE /usr/bin/whoami >> /tmp/test.log 2>&1 Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 26, 2017 Nie tworzy w ogóle pliku zarówno w wersji poprzedniej jak i po zmodyfikowaniu teraz. Utworzyłem testowo plik i też nie dodaje do istniejącego. Udostępnij ten post Link to postu Udostępnij na innych stronach
Ubinoob 12 Zgłoś post Napisano Luty 26, 2017 Przetestowałem to u siebie i szczerze mówiąc ciekawy jest tylko problem z potokami, bo faktycznie przykład z whoami nic nie loguje (jak użyjemy np. touch to plik się tworzy). Natomiast odpaliłem sobie regułkę: /etc IN_MODIFY,IN_CREATE,IN_DELETE /bin/sh /root/testincron (tylko i wyłącznie ta jedyna reguła) i skrypt z Twoją zawartością się bez problemu uruchomił. #!/bin/sh date +"%m/%d/%Y %H:%M:%S $HOSTNAME" >> /root/log.txt Jeśli nie "date" to spróbuj użyć zwykłe "touch /root/test" czy przynajmniej skrypt startuje. Udostępnij ten post Link to postu Udostępnij na innych stronach
vjdj 4 Zgłoś post Napisano Luty 26, 2017 Przekopiowałem i zadziałało. Nie wiem co było nie tak. Dzięki wielkie za pomoc. Udostępnij ten post Link to postu Udostępnij na innych stronach