Титла: Периодично изпълняване на команда с кратки интервали Публикувано от: Vatman в Mar 18, 2009, 16:17 Имаше една команда, чрез която изпълнява друга такава през даден интервал от време. Например
Цитат {нещо си - 1} acpi -V| grep Thermalи така през една секунда ще ми дава температурата. --zeridon: редакция на заглавие Титла: Re: Забравена команда Публикувано от: zeridon в Mar 18, 2009, 16:22 По принцип командата е at но по спомени тя няма резолюция от 1 секунда.
Друг вариант е с един безкраен цикъл от типа Код
Титла: Re: Забравена команда Публикувано от: Hapkoc в Mar 18, 2009, 16:38 watch, обаче е -n 1 параметърът и трябва да сложиш в кавички командата, която се изпълнява ако има pipe:
watch -n 1 'acpi -V| grep Thermal' Титла: Re: Забравена команда Публикувано от: phantomlord в Mar 18, 2009, 20:12 Мммм, това е много полезно :) Също може да се ползва и за нещо такова:
Код
Титла: Re: Забравена команда Публикувано от: Vatman в Mar 18, 2009, 21:05 мерси много. То за много неща може да се ползва, но за мен ми е да следя в реално време разни неща.
Титла: Re: Забравена команда Публикувано от: VladSun в Mar 18, 2009, 23:30 Мммм, това е много полезно :) Също може да се ползва и за нещо такова: Специално в този случай бих предпочел: Код
:) Титла: Re: Забравена команда Публикувано от: phantomlord в Mar 19, 2009, 08:34 Да, ама dmesg|tail можеш да го гледаш като юзър, а tail -f /var/log/dmesg по принцип като root :)Мммм, това е много полезно :) Също може да се ползва и за нещо такова: Титла: Re: Забравена команда Публикувано от: VladSun в Mar 19, 2009, 11:00 Прав си :)
Титла: Re: Забравена команда Публикувано от: mikis в Mar 19, 2009, 21:41 Това наистина е полезно, нека някой да смени заглавието на темата.
Титла: Re: Периодично изпълняване на команда с кратки интервали Публикувано от: oracle77 в Mar 24, 2009, 17:45 Здравейте!
Пръво бих искал да се извиня за това, че пиша пост и в тази тема, но надявам се да ме разберете. ( просто темите са много сходни ). Бих искал да помоля ако може някой да ми помогне. Става въпрос за следното: Въобще не съм запознат със ОС Линукс и командите и, а понеже сървъра, на който съм качил файловете ( РНР и HTML ) на сайта ми е с такава система изпитвам затруднение със стартирането / и оставането му стартиран / на един от тези РНР-файлове. Става въпрос за файл, който прави проверки в БД и ги сравнява с час и други фактори, но трябва да е включен на сървъра /или да изпълнява действие през 1 сек./. Засега се оправям някак, като съм стартирал през Cron Scheduled Tasks съответния файл / благодарение на neter и всички останали, взели участие в темата http://www.linux-bg.org/forum/index.php?topic=34263.0 с командата curl http://adres.na.saita/file.рнр >/dev/null , на които много благодаря /, но сайта не може да работи пълноценно, защото при старта си ( примерно в час,мин,01 сек. - стартира на всяка кръгла минута ) изпълнява командата и спира ( въпреки, че ако се стартира от браузъра ми изпълнява тази команда безкрайно ). Бяха направени промени в скрипта на въпросния файл, но без резултат - най-добрия, постигнат беше да стартира по горепосочения начин. Някой може ли да помогне и каже как би могло да стане така, че или файла да остане включен на сървъра, или да изпълнява заявка в безкрайност ( т.е. - пак да си остане стартиран, но ... ) Благодаря Ви предварително! Успех! Титла: Re: Периодично изпълняване на команда с кратки интервали Публикувано от: neter в Mar 24, 2009, 18:33 Удобно е да използваш цикъла, който показа zeridon
Код Принципно, най-добре е този цикъл да се сложи в един изпълним файл и да се изпълни директно на сървъра. Така ще си се изпълнява постоянно и ще бъде прекъснат чак когато процесът му бъде убит. Но тъй като ти (доколкото разбрах) нямаш достъп до конзолата на сървъра, ето ти алгоритъм за cron: 1. Създай си файл (за примера ще използвам име на този файл script), който е видим от cron, и го направи изпълним; 2. Сложи в него цикъла; 3. Направи си друг файл, който също да е видим от cron, направи и него изпълним и сложи следното съдържание в него Код Целта на този файл е да изключва script, за да може cron-ът да го пусне отново, тъй като cron няма опция за единично изпълнение и при следващото си завъртане ще пусне второ копие на файла с цикъла, а това не е желателно. Не забравяй да замениш script с името на файла, в който сложи цикъла; 4. Сложи си две cron задачи, които ще изпълняват тези два скрипта. Нужно е вторият скрипт (този с killall) да се изпълнява преди скрипта с цикъла Цитат 5 6 25 3 * /пълен/път/до/скрипта/с/killallТака, първият скрипт ще бъде изпълняван всяка година на 25 март в 06:05 часа и ще изключва настоящо включения цикъл, а вторият скрипт ще се изпълнява всяка година на 25 март в 06:06 часа (т.е., една минута по-късно, когато старият цикъл вече е спрян) и ще зарежда нов цикъл. Принципно, задачата може да бъде събрана и в един скрипт - като се зададе колко пъти да се завърти цикъла, което време на изпълнение на всички завъртания да съвпада с времето до следващото изпълнение от cron. Това, обаче, е малко чуплив метод, тъй като е възможно някой път да се случат забавяния в изпълнението на цикъла и така времето за изпълнение на всички завъртания на цикъла да надвиши времето до следващото изпълнение от cron, което би довело до едновременна работа известно време на два процеса с цикъла. Ти решаваш ;) |