Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-08-19 00:39:11

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Zadanie cron co x sekund

Witam
Proszę o pomoc mam skrypt Shell i chce go uruchomić w gronie co pół minuty.
Szukałem w internetach ale rozwiązanie z pętla się nie sprawdza gdyż proces ewidentnie odpala się wtedy za dużo razy
Ktoś posiada jakies sprawdzone sposoby ?
Pozdrawiam i dziękuję za opdowiedzi

Offline

 

#2  2018-08-19 01:21:49

  091619EE - Użytkownik

091619EE
Użytkownik
Zarejestrowany: 2018-07-09

Re: Zadanie cron co x sekund

Można uruchomiać co minute dwa zadania w którym jedno będzie sztucznie wytracało czas tak żeby w efekcie ostateczny skrypt uruchamiał się co pół minuty:

Kod:

* * * * * root ~/script.sh
* * * * * root sleep 30 && ~/script.sh

Offline

 

#3  2018-08-19 09:55:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zadanie cron co x sekund

Ja do takich "wiertarek udarowych" wolę daemontools zamiast crona.

Np:
[b]cat /service/vnstat/run[/b]

Kod:

#!/bin/sh

exec 2>&1

exec /usr/bin/setuidgid vnstat /usr/local/sbin/updatevnstat

[b]cat /usr/local/sbin/updatevnstat[/b]

Kod:

#!/bin/bash

while true; 
do 
for karta in $(ip route show  | grep default | cut -d' ' -f5) ;  do vnstat -u -i $karta; done;
sleep 30
done;

Czy działa?

Kod:

# G1 ###   nie sie 19 09:57:22  domek : ~ 
root ~> svstat /service/vnstat/
/service/vnstat/: up (pid 6902) 230964 seconds

Pozdro

Ostatnio edytowany przez Jacekalex (2018-08-19 12:43:18)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2018-08-19 15:09:52

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Zadanie cron co x sekund

Nie potrzeba tyle rzeźbić.

https://www.freedesktop.org/software/systemd/man/systemd.timer.html

Offline

 

#5  2018-08-19 15:15:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zadanie cron co x sekund

[quote=yossarian]Nie potrzeba tyle rzeźbić.

https://www.freedesktop.org/software/systemd/man/systemd.timer.html[/quote]
Nie zawsze nie trzeba, Systemd jest tak ogromnym i ważnym projektem, że miewa czasami różne humory, jak każdy projekt, który miewa setki tysięcy albo nawet miliony linii kodu.

Czasem lepiej polegać na rozwiązaniach bliższych regule [url=https://pl.wikipedia.org/wiki/KISS_(regu%C5%82a)]KISS[/url].
Czasem też lepiej jest polegać na 20 liniach własnego kodu, aniżeli na 20 000 linii kodu jakiegoś cudownego programu, ktory coś ma zrobić za nas "automatycznie" i "automagicznie".

Ostatnio edytowany przez Jacekalex (2018-08-19 15:18:09)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2018-08-19 15:17:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Zadanie cron co x sekund

No ale właśnie z systemd jest bardzo "simple". xD

Offline

 

#7  2018-08-19 16:06:03

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Zadanie cron co x sekund

@Jacekalex: Te Twoje prowizoryczne skrypty i narzędzie porzucone prawie 20 lat temu są bardzo KISS :D

Offline

 

#8  2018-08-19 16:34:22

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zadanie cron co x sekund

[quote=yossarian]@Jacekalex: Te Twoje prowizoryczne skrypty i narzędzie porzucone prawie 20 lat temu są bardzo KISS :D[/quote]
I cóż z tego?

Działają zawsze, działają niezawodnie, są najbardziej odporne na aktualizacje systemu.
Do tego można z takimi skrytami fruwać między różnymi systemami Linuxa i BSD,
co przy systemd nie jest aż takie oczywiste.

I to jest podstawowe kryterium oceny dla mnie.

Z  resztą spróbuj zgadnąć, na jakim to jest systemie:

Kod:

root ~> svstat /etc/service/*
/etc/service/cgroup: up (pid 1469) 269446 seconds
/etc/service/dovecot: up (pid 1474) 269446 seconds
/etc/service/dropbear: up (pid 1471) 269446 seconds
/etc/service/mysql: up (pid 1477) 269446 seconds
/etc/service/nginx: up (pid 28787) 36806 seconds
/etc/service/opendkim: up (pid 1473) 269446 seconds
/etc/service/php71: up (pid 1472) 269446 seconds
/etc/service/phpmageadmin: up (pid 1468) 269446 seconds
/etc/service/phpmagento: up (pid 1476) 269446 seconds
/etc/service/postfix: up (pid 1792) 269444 seconds
/etc/service/prosody: up (pid 1478) 269446 seconds
/etc/service/redis: up (pid 1480) 269446 seconds
/etc/service/sshd: up (pid 1475) 269446 seconds

Kod:

root ~> systemctl status  daemontools.service
● daemontools.service - Daemontools service supervision
   Loaded: loaded (/lib/systemd/system/daemontools.service; enabled; vendor pres
   Active: active (running) since Thu 2018-08-16 13:47:53 CEST; 3 days ago
 Main PID: 1426 (svscanboot)
   CGroup: /system.slice/daemontools.service

xD

Pozdro

Ostatnio edytowany przez Jacekalex (2018-08-19 16:40:14)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2018-08-19 17:32:19

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Zadanie cron co x sekund

Do tego można z takimi skrytami fruwać między różnymi systemami Linuxa i BSD,[/quote]
Wszystko wygląda fajnie do czasu, aż przejmujesz po kimś maszynę pełną takich skryptów pisanych na kolanie i musisz w takim bajzlu zgadywać „co poeta miał na myśli”.

PS Systemd zarządzający daemontools — bardzo pokrętna ta twoja logika :D

Offline

 

#10  2018-08-19 19:59:39

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Re: Zadanie cron co x sekund

Kod:

 *     *     *     *     *  komenda do wykonania
 -     -     -     -     -
 |     |     |     |     |
 |     |     |     |     +----- dzień tygodnia (0 - 6) (Niedziela=0)
 |     |     |     |     
 |     |     |     +------- miesiąc (1 - 12)
 |     |     |     
 |     |     +--------- dzień miesiąca (1 - 31)
 |     |     
 |     +----------- godzina (0 - 23)
 |     
 +------------- minuta (0 - 59)

Co pół minuty to byłoby coś a`la

Kod:

*/30 * * * * /user/bin/skrypt_do_wykonania

[url=http://pl.docs.pld-linux.org/uslugi_cron.html]Wiki PLD[/url]

Ostatnio edytowany przez numer_inaczej (2018-08-19 20:01:30)

Offline

 

#11  2018-08-19 20:11:46

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Zadanie cron co x sekund

Cron się do tego w ogóle nie nadaje bo nie operuje na sekundach.
Twój przykład by działał co 30 min.

Cron, przez swój nieudolny mechanizm (operuje na pętlach) zarżnął by większość maszyn przy operacjach wymagających większej powtarzalności niż jedna minuta i z tego powodu ma zaimplementowane takie ograniczenie.
Dlatego powstają nowocześniejsze i wydajniejsze narzędzia (np. systemd.timer), ale niektórzy wolą dalej siedzieć w swojej jaskini ;)

Offline

 

#12  2018-08-20 07:43:02

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zadanie cron co x sekund

[quote=yossarian]

Do tego można z takimi skrytami fruwać między różnymi systemami Linuxa i BSD,[/quote]
Wszystko wygląda fajnie do czasu, aż przejmujesz po kimś maszynę pełną takich skryptów pisanych na kolanie i musisz w takim bajzlu zgadywać „co poeta miał na myśli”.

PS Systemd zarządzający daemontools — bardzo pokrętna ta twoja logika :D[/quote]
Jak przejmuję po kimś maszynę, to zazwyczaj widzę tam wybitnych ekspertów od konfiguracji Internet Explorera.
Z resztą 90% takich przejmowanych serwerów to maszyny, którymi ktoś się zajmował wieki temu, i teraz pilnie jest potrzeba admina, bo "przestało działać".

Ostatni taki "przejęty serwer" miał Debiana 4.0, a przestał działać bo się w nim
system plików ext3 posypał (po 10 latach miał prawo).
Wstępna diagnoza wykazała agonię dyzia, a ostatni backup był zrobiony w roku 2009.

Także garsć prostych skryptów to wcale nie jest żadna tragedia w odziedziczonym serwerze.
Zazwyczaj można tam dużo gorsze niespodzianki znaleźć, w 8 przypadkach na 10
i tak trzeba taki serwer przeorać, bo żadna aktualizacja już tam pomóc nie może.

Pomijam wypadki typu "ratunku, mój serwer zaczął nagle sam z siebie tony spamu wysyłać, co robić!!!".


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2018-09-18 16:04:44

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Zadanie cron co x sekund

[quote=Jacekalex][quote=yossarian]@Jacekalex: Te Twoje prowizoryczne skrypty i narzędzie porzucone prawie 20 lat temu są bardzo KISS :D[/quote]
I cóż z tego?

Działają zawsze, działają niezawodnie, są najbardziej odporne na aktualizacje systemu.
Do tego można z takimi skrytami fruwać między różnymi systemami Linuxa i BSD,
co przy systemd nie jest aż takie oczywiste.

I to jest podstawowe kryterium oceny dla mnie.[/quote]
Zapomniałeś o OS X, na którym też to pójdzie :D


[img]http://intershock.pl/images/icons/freebsd.jpg[/img] [img]http://www.the-eleven.com/site_media/static/img/postgresql_powered.png[/img] [img]http://www.wwgmc.com/images/badge_php.gif[/img]
LRU #480459

Offline

 

#14  2018-09-19 04:55:18

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zadanie cron co x sekund

[quote=jezoo][quote=Jacekalex][quote=yossarian]@Jacekalex: Te Twoje prowizoryczne skrypty i narzędzie porzucone prawie 20 lat temu są bardzo KISS :D[/quote]
I cóż z tego?

Działają zawsze, działają niezawodnie, są najbardziej odporne na aktualizacje systemu.
Do tego można z takimi skrytami fruwać między różnymi systemami Linuxa i BSD,
co przy systemd nie jest aż takie oczywiste.

I to jest podstawowe kryterium oceny dla mnie.[/quote]
Zapomniałeś o OS X, na którym też to pójdzie :D[/quote]
Ale za to w Windows 10 nie działa. xD


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.010 seconds, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00104 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.128.200.165' WHERE u.id=1
0.00064 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.128.200.165', 1733247346)
0.00047 SELECT * FROM punbb_online WHERE logged<1733247046
0.00061 DELETE FROM punbb_online WHERE ident='18.223.237.218'
0.00044 SELECT topic_id FROM punbb_posts WHERE id=321175
0.00102 SELECT id FROM punbb_posts WHERE topic_id=30590 ORDER BY posted
0.00065 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30590 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00086 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30590 ORDER BY p.id LIMIT 0,25
0.00088 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30590
Total query time: 0.0068 s