Як виконувати команду кожні 10 секунд (без крона)?


36

Коли я страчую, cronя отримую цю провину

cron: не вдається відкрити або створити /var/run/crond.pid: Дозвіл відхилено

Отже, як це зробити без cron?

PS Я хочу перевірити, чи змінився файл у svn і у мене є спеціальний скрипт для нього.


Якщо у вас немає дозволу, спробуйте запустити cron sudo.
Анонім

4
Майте на увазі, що крон нічого не робитиме кожні 10 секунд, найгранічніше - це раз на хвилину.
Цезій

Якщо ви хочете зробити кронштейни, вам слід запустити, crontab -eщоб запустити редактор. Щоб перелічити поточні крони, запустітьcrontab -l
Lekensteyn

@Anonymous Я не знаю корінний пароль, тому sudo мені не допоможе.
UAdapter

Відповіді:


59

Для доступу до вашої особистої cronконфігурації слід скористатися командою crontab -e(для редагування таблиці ваших cron).

Альтернативою є watchкоманда:

watch -n10 command args

Нарешті, для більш ефективного моніторингу подій файлової системи ви можете використовувати inotifywaitз inotify-toolsпакету.


1
Варто зауважити, можливо, вам краще зафіксувати свою команду всередині подвійних лапок, або у вас може виникнути несподівані результати. watch -n<timeout> "command(s) arg(s)"якwatch -n2 "ps ux | grep ss5"
Ахілл

Мені важко було watchприйняти довгі, складні команди за допомогою труб та лапок. Хоча петля внизу працювала, але, звичайно, завжди слід спати спочатку, щоб уникнути утікаючих прищиків.
rjurney

@rjurney: повинно вистачити, щоб обернути всю команду в лапках, одинарних або краще подвійних:watch -n10 "ls -l | grep $foo"
enzotib

@enzotib Проблема виникає, коли в командах є цитати, оскільки цитати в цитатах в межах (бог, допоможіть мені) підходи неможливі в башті. Теоретично це повинно бути можливим, але я рідко досягаю вкладених цитат в баш, не здаючись і не йдучи іншим маршрутом.
rjurney

32

Ви можете написати сценарій оболонки, який має sleepцикл.

#!/bin/sh
while [ true ]
do
    sh special_svn_script.sh
    sleep 10
done

5
while trueне вимагає квадратних дужок, інакше "true" інтерпретується як рядок, а кожна струна є такою ж хорошою, як "true".
enzotib

1
@enzotib, тож ви можете також писати, коли навколо
Едуард Флоринеску,

Хоча це працює, ви завжди повинні спати спочатку, тому що може статися щось, що призведе до того, що крок сну не буде досягнуто, і в такому випадку у вас є утікач, який щось затоплює.
rjurney

4

gnome-графік (натисніть кнопку, щобInstall now!скористатись Вашим ПЗ)
- це графічний інтерфейс користувача, який використовує потужність vixie-cron, dcron та at для управління файлом crontab та забезпечує простий спосіб планування завдань на вашому комп’ютері. Він підтримує періодичні (періодичні) завдання та завдання, які трапляються лише один раз у майбутньому. Він написаний на Python за допомогою pygtk.

Дивовижні особливості

  • Підтримує власні заголовки та піктограми для ваших завдань, щоб їх було легше відстежувати
  • Шаблони підтримують так, що вам не доведеться створювати одне і те ж завдання знову і знову; вони зберігаються в gconf і можуть легко доставляти їх, скажімо, з дистрибутивом Linux
  • Якщо запустити як root, ви можете редагувати завдання crontab та "at" будь-якого користувача.
  • Читані людиною рядки типу "Кожна година" замість "0 * * * *"
  • Вдосконалений режим для експертів із кронтабування
  • Забезпечує "аплет панелі", де ви можете керувати завданнями зі спадного меню
  • Заздалегідь визначені загальні вирази, такі як: кожна хвилина, кожен тиждень, завтра, наступний тиждень Календар дозволяє вибрати день, коли ви хочете виконати завдання
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.