Skocz do zawartości


 

Zdjęcie

Incrontab odpalenie własnego skryptu

Incrontab odpalenie własnego skryptu incrontab debian

  • Proszę się zalogować aby odpowiedzieć
17 odpowiedzi na ten temat

Incrontab odpalenie własnego skryptu

#1 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 25 luty 2017 - 14:14

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
 

  • 0

#2 Gość_mariaczi_*

Gość_mariaczi_*
  • Goście

Napisany 25 luty 2017 - 17:06

Dokładnie to, o co pytasz: https://www.howtofor...es-with-incron/ ;)


  • 1

#3 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 25 luty 2017 - 19:18

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.


  • 0

#4 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 25 luty 2017 - 19:26

Skrypt w czym? Jesteś pewien że incron ma dostęp do tego katalogu i odpowiedni chmod?


  • 1

#5 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 25 luty 2017 - 19:32

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


  • 0

#6 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 25 luty 2017 - 19:34

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

Edytowany przez Ubinoob, 25 luty 2017 - 19:35.

  • 1

#7 Gość_mariaczi_*

Gość_mariaczi_*
  • Goście

Napisany 25 luty 2017 - 19:39

incron może nie znać $PATH. Daj w skrypcie pełne ścieżki do binarek z których w nim korzystasz.


  • 0

#8 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 25 luty 2017 - 19:42

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. 

 

 


Edytowany przez vjdj, 25 luty 2017 - 20:03.

  • 0

#9 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 25 luty 2017 - 20:55

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ć.


  • 0

#10 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 26 luty 2017 - 10:07

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

  • 0

#11 Gość_mariaczi_*

Gość_mariaczi_*
  • Goście

Napisany 26 luty 2017 - 10:11

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.


Edytowany przez mariaczi, 26 luty 2017 - 10:15.

  • 0

#12 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 26 luty 2017 - 10:51

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)

  • 0

#13 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 26 luty 2017 - 11:50

I nadal nie ma nic w /tmp/test.log?


  • 0

#14 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 26 luty 2017 - 13:20

I nadal nie ma nic w /tmp/test.log?

Nie, pusto.


  • 0

#15 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 26 luty 2017 - 14:14

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

  • 0

#16 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 26 luty 2017 - 14:40

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.

 


  • 0

#17 Ubinoob

Ubinoob

    Często na forum

  • Użytkownicy
  • 58 postów

Napisany 26 luty 2017 - 15:29

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.


  • 0

#18 vjdj

vjdj

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 154 postów

Napisany 26 luty 2017 - 17:28

Przekopiowałem i zadziałało.

Nie wiem co było nie tak.

Dzięki wielkie za pomoc.


  • 0






Także otagowane jednym lub więcej z tych słów kluczowych: incrontab, debian

0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników