Portál AbcLinuxu, 10. května 2025 07:20
#!/bin/sh if [ ! -f /mnt/remote/var/run/uloha.pid ]; then touch /mnt/remote/var/run/uloha.pid #... tady to neco dela rm /mnt/remote/var/run/uloha.pid else exit 1 fi? pak to ale predpoklada, aby vzdy alespon jeden stroj byl vzdy funkcni 4. Posunout cas na strojich o urcity casovy interval?
Dobry den.
Napad:
Kazdy stroj ma nejakou jedinecnou ip adresu.
Co takhle generovat adresy tak, aby ztoho bylo jasne, kdy se to ma poustet.
Marek
Dobry den.
Myslim, ze nejsnazsi je stupidni wrapper, ktery je pousten cronem a ktery pousti Vas script. To znamena, ze to cron bude poustet napriklad kazdou hodinu, a pokud 5 konecnych bitu adresy se shoduje s hodinou pak spust zbytek.
#!/bin/bash LASTBYTE=$(ip addr show dev eth0 scope global | sed -e"s/[[:blank:]]\+inet[[:blank:]]\+[^\.]\+\.[^\.]\+\.[^\.]\+\.\([^\/]\+\)\/.*/\1/p;d"); if [ "$((LASTBYTE & 31 ))" -eq "$(date +%k)" ] then echo "zde je funkcni cast" fi
Marek
STANICE=$(cat "cislo_stanice.txt")*10 $STANICE * * * * /bin/prog1 $STANICE 5,17 * * * /bin/prog2ale obávám se, že takhle to fungovat nebude. Ovšem mohlo by pomoct nějaké makro pro VIM nebo ten crontab generovat při každém startu. U toho druhého způsobu stačí vygenerovat řetězec v libovolném programu, který dodá minuty třeba podle jména počítače nebo IP, vloží je do správného místa a odešle do crontabu. Například takto:
#/bin/sh STANICE=$(generator) echo "$STANICE * * * * /bin/prog1" | crontab -a tento skript uložit někam do
/etc/init.d/
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.