Як виконувати команду кожні 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.