1 (edytowany przez Michal1986 2017-12-06 12:42:14)

Temat: cron start=150

Szybkie pytanie.

/etc/init.d/cron   
chaos 15.05

Mogę zmienić start crona START =50 na START=150 bezkarnie czy tą zmianą utrudnię sobie życie ?
Dlaczego pytam :

49 11 * * * reboot

chciałem by robił reboot o określonej godzinie i zrobił a po tym jak system wstał robił reboot co 1 min.

Poczytałem i jak mniemam wcześniej wstaje cron niż system ustali godzinę i stąd ten reboot co 1 min tak ?

wiec czy START=150 usunie ten problem nie tworząc przy okazji żadnego innego ?

a to kod z /etc/init.d/cron

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org

START=150

USE_PROCD=1
PROG=/usr/sbin/crond

validate_cron_section() {
    uci_validate_section system system "${1}" \
        'cronloglevel:uinteger'
}

start_service () {
    [ -z "$(ls /etc/crontabs/)" ] && return 1

    loglevel=$(uci_get "system.@system[0].cronloglevel")

    [ -z "${loglevel}" ] || {
        /sbin/validate_data uinteger "${loglevel}" 2>/dev/null
        [ "$?" -eq 0 ] || {
            echo "validation failed"
            return 1
        }
    }

    mkdir -p /var/spool/cron
    ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null

    procd_open_instance
    procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5}
    procd_close_instance
}

service_triggers()
{
    procd_add_validation validate_cron_section
}

2

Odp: cron start=150

Utrudniasz sobie życie bo do 99 powinno być. Gdziś tak w skryptach chyba jest ograniczenie.

START=150 nie usunie problemu. Raczej wystartuj cron jak system będzie miał czas - jest ntp w hotplugu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez Michal1986 2017-12-06 12:54:03)

Odp: cron start=150

Cezary napisał/a:

  jest ntp w hotplugu.

ntp hotplugu ? dzieki Cezar za szybko odp lecz nie rozumiem co masz na myśli ):


Znalazłem takie coś na necie

30 4 * * * sleep 70 && touch /etc/banner && reboot

rozumiem tylko ze : o 4:30 rano system czeka 70 sekund i touch /etc/banner ? nierozumiem ...i potym reboot

o co chodzi z tą czescia touch ?

jak wkleje tą komende to powinno rstartować raz o konkretnej godzinie czy coś jeszcze trzeba zrobic ?

4

Odp: cron start=150

Michal1986 napisał/a:

03 13 * * * sleep 70 && touch /etc/banner && reboot

Ok działa jak trzeba .Restartuje urządzenie raz.

5

Odp: cron start=150

A co jak przez 70 sekund nie nawiąże połączenia i nie będzie właściwego czasu?

Hotplug - skrypty wołane jak nastąpi jakieś zdarzenie. Synchronizacja czasu jest takim zdarzeniem. Zobacz np. plik /etc/hotplug.d/ntp/25-dnsmasqsec który ustawia zawartość pliku jak będzie właściwy czas. I tam właśnie możesz np. uruchomić sobie crona. To jest właściwe rozwiązanie.

Jak router nie ma czasu to przy uruchomieniu szuka z katalogu /etc/ pliku z najnowszym czasem i taki czas ustawia w systemie. touch /etc/pliku po prostu modyfikuje czas dostępy do pliku na bieżący, więc najprawdopodobniej z tego pliku zostanie ustawiony czas przy następnym restarcie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: cron start=150

EDIT: co prawda to co napisałem jest dobre, ale całkowicie ma się nijak to twojego problemu smile

Jeszcze raz: router ma czas, robi w cronie restart o 3:13. Tak jak napisałem - bierze czas z plików na starcie, więc jeżeli się uruchomi i ustawi czas, a będzie to przez przypadek czas restartu czyli 3:13 i uruchomi crona to znów się zrestartuje. I to jest problem.

To co pokazałeś jest ok - po prostu robi sleepa na ponad minutę, ustawia czas dostępu do pliku i robi reboot. Więc po starcie będzie miał 3:14 10s i wszystko będzie ok.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: cron start=150

Cezary napisał/a:

A co jak przez 70 sekund nie nawiąże połączenia i nie będzie właściwego czasu?

Aha.U mnie jest to w  tak ?

/etc/hotplug.d/iface/25-dnsmasq

Jego zawartosć by inicjować cron to :

#!/bin/sh

[ "$ACTION" = ifup ] || exit 0

/etc/init.d/dnsmasq enabled && /etc/init.d/dnsmasq start

/etc/init.d/cron start

a w /etc/crontabs/root powinno byc np tak :

03 7 * * *   reboot
03 15 * * *  reboot
03 21 * * *  reboot

8

Odp: cron start=150

Cezary napisał/a:

EDIT: co prawda to co napisałem jest dobre, ale całkowicie ma się nijak to twojego problemu smile
To co pokazałeś jest ok - po prostu robi sleepa na ponad minutę, ustawia czas dostępu do pliku i robi reboot. Więc po starcie będzie miał 3:14 10s i wszystko będzie ok.

Ok. a Gdybym teoretycznie zrobił tak jak mój post wyżej działało by to ?

9

Odp: cron start=150

Tak, ale - jeżeli miałbyś w cronie jakieś cykliczne sprawy (np. coś miało byś się uruchamiać co minutę a nie o określonym czasie) to by to nie działało aż do momentu kiedy router zsynchronizuje czas.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: cron start=150

Rozumiem.Dziękuje

W takim razie dla potomności wykomentuję # sobie w crontabs/root   to linijke z touch-em a zastosuje twoje rozwiązanie .

Raz jeszcze dzięki.

11

Odp: cron start=150

Michal1986 napisał/a:

Rozumiem.Dziękuje

W takim razie dla potomności wykomentuję # sobie w crontabs/root   to linijke z touch-em a zastosuje twoje rozwiązanie .

Raz jeszcze dzięki.

No nie, zostaw tak jest smile Bo kiedyś coś jeszcze dodasz do crona i będziesz się zastanawiał dlaczego nie działa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez Michal1986 2017-12-06 14:26:47)

Odp: cron start=150

No nie, zostaw tak jest smile Bo kiedyś coś jeszcze dodasz do crona i będziesz się zastanawiał dlaczego nie działa.

Dobra dobry komentarz mnie naprowadzi wink

#1.cron inicjowany(start) z    /etc/hotplug.d/iface/25-dnsmasq    .działa po zsynchronizowaniu czasu przez ruter.
# cykliczne sprawy np co 1 min bez synchro na start (wylacz punkt 1 ) uncoment "...sleep and touch" a w putty /etc/init.d/cron enable && /etc/init.d/cron start
# By Cezary wink
# https://eko.one.pl/forum/viewtopic.php? … 20#p196920

#03 13 * * * sleep 70 && touch /etc/banner && reboot


03 7 * * *   reboot
03 15 * * *  reboot
03 21 * * *  reboot

13

Odp: cron start=150

Już OT: czemu go restartujesz trzy razy na dobę?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: cron start=150

2 o 7 i 21  ten w środku to będzie jedno razowa próba czy działa.

Wierzę w to  że w jakiś magiczny bramkowo logiczny  sposób router po wstaniu działa lepiej wink

15

Odp: cron start=150

/etc/sm.txt | sendmail -t

chce wysłać do siebie maila na 5 min przed reboot routera.Jak to zrobić w cron ?

16 18 * * * cat /etc/sm.txt | sendmail -t

tak nie działa.
Jesli w putt wpisze

/etc/sm.txt | sendmail -t
lub
cat /etc/sm.txt | sendmail -t
to działa dobrze.

Jak to zrobic w crontabs ?

16

Odp: cron start=150

Podaj pełną ścieżkę do sendmaila a jeszcze lepiej - zrób  z tego skrypt i wywołaj skrypt w cronie.

Wyślij mejla, poczekaj 5 minut i zrób reboot, oczywiste to smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: cron start=150

Cezary napisał/a:

Podaj pełną ścieżkę do sendmaila a jeszcze lepiej - zrób  z tego skrypt i wywołaj skrypt w cronie.

Wyślij mejla, poczekaj 5 minut i zrób reboot, oczywiste to smile


37 19 * * * sendmail jakismail@gmail.com < /etc/sm.txt

ale nie zadziałało. zawartosc sm.txt to tresc maila czy coś jeszcze ?
Pomóż mi proszę z poprawnościa komendy

18

Odp: cron start=150

"Podaj pełną ścieżkę do sendmala" <- nie zrozumiałeś co napisałem. Zamiast sendmail napisz /usr/bin/sendmail czy gdzie tam go masz - sprawdź sobie w systemie gdzie jest.

/et/sm.txt to nie tylko treść mejla ale także nagłówki - skorzystaj z poradników na eko.one.pl żeby zobaczyć co i jak.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: cron start=150

Porządkujac wszystko mam tak :

cron:

12 20 * * * cat /etc/sm.txt | /usr/bin/msmtp -t

sm.txt :

To: jakismail@gmail.com
Subject: wiadomosc testowa
Uwaga resetuje Router za 5 min.

Wklepie to w puty  działa :
cat /etc/sm.txt | /usr/bin/msmtp -t

w cronie nie chce działac.
po zapisaniu zmian robie :
/etc/init.d/cron reload
musze po reload pisac też :
/etc/init.d/cron start ?

20

Odp: cron start=150

Jak zrobisz reload to start już nie jest potrzebny.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21 (edytowany przez Michal1986 2017-12-06 20:31:33)

Odp: cron start=150

Cezary napisał/a:

Jak zrobisz reload to start już nie jest potrzebny.

tylko czemu cron nie wykonuje tej komendy.
Przez konsole działa to normalnie ):
oczywiscie zmieniam czas sprawdzajac w putty uptime a w cron dodaje wtedy 3 min wiecej

22

Odp: cron start=150

Pisałem, zrób skrypt z tego...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: cron start=150

czyli w cron np :

50 20 * * * cat /etc/sm.sh

a w sm.sh  dac to ?

cat /etc/sm.txt | /usr/bin/msmtp -t

24

Odp: cron start=150

Jakie cat? /etc/sm.sh po prostu. A skrypt zaczyna się się od !/bin/sh np. Masz dużo skryptów systemie, zobacz jak są zbudowane.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: cron start=150

Cezary napisał/a:

Jakie cat? /etc/sm.sh po prostu. A skrypt zaczyna się się od !/bin/sh np. Masz dużo skryptów systemie, zobacz jak są zbudowane.

Dobra działa wink

cron :

13 23 * * * /usr/bin/sm start

/usr/bin/sm :

#!/bin/sh /etc/rc.common
cat /etc/sm.txt | /usr/bin/msmtp -t

Wniosek. Wystarczyło wrzucić skrypt do usr/bin
Dzięki za pomoc