Autor Wątek: CRON - openSUSE 42.1  (Przeczytany 8336 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Dukov

  • Gość
CRON - openSUSE 42.1
« dnia: Luty 21, 2016, 11:55:01 am »
Hej
Mam pewne pytanie, napisałem sobie skrypt sprawdzający czy jest internet, a jak nie, to gdzie jest problem czy u mnie z routerem, czy u ISP. Ale chciałbym go uruchamiać automatycznie przy starcie systemu, wyczytałem, że muszę zamiast godziny uruchamiania wpisać @Reboot, ale sam CRON nie startuje z systemem i nie wiem nawet za bardzo co dalej.

Stefan

  • Moderator
  • Maniak SUSE
  • *
  • Wiadomości: 2947
  • Moderator kuwety
Odp: CRON - openSUSE 42.1
« Odpowiedź #1 dnia: Luty 21, 2016, 12:10:16 pm »
1. Czy chcesz żeby był uruchamiany przy starcie, czy cron ma go obrabiać?
2. Jeżeli to ma być cron, to pokaż co wpisałeś (crontab -l i cat /etc/crontab)


T60: SXGA+ T5600 3GB DDR2 SSD:60GB OS:jessie || Pomiędzy prezentacją siebie, a reklamą istnieje zasadnicza różnica. Konta z linkami są usuwane.

Dukov

  • Gość
Odp: CRON - openSUSE 42.1
« Odpowiedź #2 dnia: Luty 21, 2016, 12:32:05 pm »
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

@reboot bash /home/eddie/Skrypt/first

oraz

crontab -l
no crontab for eddie

Nie musi być to cron, chcę tylko żeby skrypt odpalał się w momencie jak się zaloguję do systemu, w jakikolwiek sposób.

CameronPoe

  • SUSE Root
  • *****
  • Wiadomości: 1073
Odp: CRON - openSUSE 42.1
« Odpowiedź #3 dnia: Luty 21, 2016, 01:58:34 pm »
Jeżeli to KDE to Ustawienia systemowe -> Uruchamianie i wyłączanie -> Dodaj skrypt :)

Dukov

  • Gość
Odp: CRON - openSUSE 42.1
« Odpowiedź #4 dnia: Luty 22, 2016, 12:39:07 pm »
GNOME :)

mruz

  • Geeko's friend
  • SUSE Guru
  • *
  • Wiadomości: 500
  • openSUSE Tumbleweed
      • Football
Odp: CRON - openSUSE 42.1
« Odpowiedź #5 dnia: Luty 23, 2016, 11:13:39 am »
Dodaj do /etc/cron.d pliki:
vi /etc/cron.d/eddie
O treści (+dodatkowa pusta linia na końcu):
@reboot eddie /usr/bin/bash /home/eddie/Skrypt/first
Ew. jeszcze prawa:
chmod +x /home/eddie/Skrypt/first
Jeśli sam w siebie nie uwierzysz,
Nikt inny w ciebie nie uwierzy!

Dukov

  • Gość
Odp: CRON - openSUSE 42.1
« Odpowiedź #6 dnia: Luty 23, 2016, 03:46:37 pm »
Prawa dodałem już wcześniej i zmieniłem właściciela na grupę users. Dzięki wielkie, wchłonąłem dwie książki o Linuxie, ale w pewnym momencie mózg mi się zaczął gotować i crona zupełnie nie zrozumiałem, a widzę teraz jakie to proste.
 EDIT
Aczkolwiek za bardzo nie rozumiem
Dodaj do /etc/cron.d pliki:
vi /etc/cron.d/eddie
Muszę w katalogu /etc/cron.d/ uwtorzyć tekstowy plik eddie, czyli o nazwie użyszkodnika, dla którego ma się odpalać skrypt. Więc jeśli zaloguję sie jako użytkonik eddie, będzie się odpalał skrypt, jeśli zaloguje się użytkownik józek, to skrypt się nie odpali, tak? A jeśli mam rację, to jak to zrobić, żeby się skrypt odpalał dla wszystkich użytkowników, lub dla roota?

EDIT2
Nie wiem czy czegoś nie popi..sułem, ale uwtorzyłem plik eddie w katalogu cron.d i wpisałem w nim
[edit]
@reboot eddie /usr/bin/bash /home/eddie/Skrypt/first
[code]

Nie działa, potem to samo wpisałem w pliku crontab - to samo. Dodałem też nazwę użytkownika eddie do stworzonego pliku cron.allow .
Wpisałem w konsoli
[code]
crontab -l
Efekt - no crontab for eddie

Wkońcu wpisałem w konsoli
crontab - e
[code]
i w tym
[code]
@reboot eddie /usr/bin/bash /home/eddie/Skrypt/first

wtedy wyskoczyło mi to zadanie, gdy wpisałem komendę crontab -l. Tylko, że skrypt się nie odpala przy logowaniu. Skrypt ma prawdo odczytu, co więcej, jestem też właścicielem pliku zawierającego skrypt.

EDIT
Zadziałało, najprawdopodobniej za pomocą polecenia
crontab -e
Bo modyfikacje plików nie zaskoczyło, próbowałem też wpisać datę i echo, oraz @reboot i echo do pliku i nie zadziałało. A nie wpisywałem tego za pomocą
crontab -e
Ale sprawdzę dokładnie później, bo idę do pracy.
A i dzięki za pomoc :) Taka wiedza zawsze się przydaje.

EDIT
Tak jak mówiłem, działa tylko polecenie
crontab -e
Pytanie tylko jak zmusić skrypty, żeby odpalały się w terminalu, albo żeby działały w tle, a w pewnym momencie je przenieść do teminalu.
« Ostatnia zmiana: Luty 24, 2016, 05:19:17 pm wysłana przez Dukov »

mruz

  • Geeko's friend
  • SUSE Guru
  • *
  • Wiadomości: 500
  • openSUSE Tumbleweed
      • Football
Odp: CRON - openSUSE 42.1
« Odpowiedź #7 dnia: Luty 26, 2016, 04:42:00 pm »
Dodaj do /etc/cron.d pliki:
vi /etc/cron.d/eddie

Nazwa jest dowolna, zaproponowałem taką, bo akurat skrypt z prawami tego użytkownika jest uruchamiany.

Sprawdź logi /var/log/messages szukając CRON
Jeśli sam w siebie nie uwierzysz,
Nikt inny w ciebie nie uwierzy!

Dukov

  • Gość
Odp: CRON - openSUSE 42.1
« Odpowiedź #8 dnia: Luty 26, 2016, 04:52:20 pm »
Nie ma tam nawet pliku messages


[root@eddie eddie]#  /var/log/messages | grep log
bash: /var/log/messages: Nie ma takiego pliku ani katalogu


:)

No ale ok, działa, za pomocą, zresztą zaopatrzyłem się w dwie książki o Linuxie i właśnie w ksiażce jest opisana ta metoda
crontab -e

druga metoda z książki - też działająca to dodanie zadania bezpośrednio do pliku, a nie za pomocą komendy, aczkolwiek jeśli mówimy i o vim i crontab-e, to jest jedno i to samo, bo crontab -e odpala plik crontab vinem.
/etc/crontab






terminus

  • SUSE User
  • *
  • Wiadomości: 79
  • Tau te nu motu atea
Odp: CRON - openSUSE 42.1
« Odpowiedź #9 dnia: Marzec 09, 2016, 04:35:04 pm »
1. systemctl status cron
2. Jeśli nie działa to: systemctl start cron
3. Sprawdź czy jest odpalany na starcie: systemctl is-enabled cron
4. Jeśli nie to: systemctl enable cron
Panie Boże Spraw abym nie odzywał się i mordy nie otwierał, jeśli nie mam nic ciekawego do powiedzenia.