Использование ссылок в crontab

Другой пример xdotool:

xdotool search --onlyvisible --classname --sync Navigator windowminimize

Выполняет поиск (и ждет из-за --sync) для видимого окна навигатора, а затем минимизирует его.

См. xdotool(1) COMMAND CHAINING:

xdotool поддерживает запуск нескольких команд для одного вызова. Как правило, вы начинаете с команды поиска (см. «WINDOW STACK»), а затем выполняете набор действий по этим результатам.
4
задан 22 June 2017 в 12:12

6 ответов

Да, вы можете использовать ссылку на файл в crontabs - с такими же условиями, как всегда, например,

файл, который разрешает ссылка, должен быть исполняемым, он должен иметь возможность запускать в ограниченном окружении by cron

На самом деле многие обычные исполняемые команды являются символьными ссылками - даже /bin/sh:

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 11 13:58 /bin/sh -> dash

Так например

# m h  dom mon dow   command
40 * * * * /bin/sh -c 'echo "Hello from $0 (which is actually $(readlink -f $0))"' > /home/steeldriver/cron.out

] приводит к

$ cat ~/cron.out
Hello from /bin/sh (which is actually /bin/dash)
4
ответ дан 22 May 2018 в 21:17

Да, вы можете использовать ссылку на файл в crontabs - с такими же условиями, как всегда, например,

файл, который разрешает ссылка, должен быть исполняемым, он должен иметь возможность запускать в ограниченном окружении by cron

На самом деле многие обычные исполняемые команды являются символьными ссылками - даже /bin/sh:

$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 Jan 11 13:58 /bin/sh -> dash

Так например

# m h dom mon dow command 40 * * * * /bin/sh -c 'echo "Hello from $0 (which is actually $(readlink -f $0))"' > /home/steeldriver/cron.out

] приводит к

$ cat ~/cron.out Hello from /bin/sh (which is actually /bin/dash)
4
ответ дан 18 July 2018 в 11:15

Да, вы можете использовать ссылку на файл в crontabs - с такими же условиями, как всегда, например,

файл, который разрешает ссылка, должен быть исполняемым, он должен иметь возможность запускать в ограниченном окружении by cron

На самом деле многие обычные исполняемые команды являются символьными ссылками - даже /bin/sh:

$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 Jan 11 13:58 /bin/sh -> dash

Так например

# m h dom mon dow command 40 * * * * /bin/sh -c 'echo "Hello from $0 (which is actually $(readlink -f $0))"' > /home/steeldriver/cron.out

] приводит к

$ cat ~/cron.out Hello from /bin/sh (which is actually /bin/dash)
4
ответ дан 24 July 2018 в 19:45
У вас должно быть пробелы между * Также, как упоминалось @steeldriver - у вас слишком много полей

Добавление пробелов и удаление дополнительных * должны работать:

10 * * * * /path-to-link/

Дополнительная информация - how-do Я добавляю задания в cron под linux

Пример: Запуск сценария задания резервного копирования cron Если вы хотите, чтобы сценарий с именем /root/backup.s h запускался каждый день в 3 часа ночи, ваш crontab запись будет выглядеть следующим образом. Сначала установите cronjob, выполнив следующую команду:
crontab -e
Добавьте следующую запись:
0 3 * * * /root/backup.sh
Сохраните и закройте файл. Как использовать операторы? Оператор позволяет указать несколько значений в поле. Существует три оператора: Звездочка (*): Этот оператор задает все возможные значения для поля. Например, звездочка в поле времени часа будет эквивалентна каждому часу, или звездочка в поле месяца будет эквивалентна каждому месяцу. Запятая (,): Этот оператор задает список значений, например: «1,5,10,15,20, 25». Символ (-): этот оператор задает диапазон значений, например: «5-15» дней, что эквивалентно набору «5,6,7,8,9, ...., 13,14,15», используя оператор запятой. Сепаратор (/): этот оператор задает значение шага, например: «0-23 /» можно использовать в поле часов, чтобы указывать выполнение команды каждый час. Шаги также разрешены после звездочки, поэтому, если вы хотите сказать каждые два часа, просто используйте * / 2.
4
ответ дан 22 May 2018 в 21:17
  • 1
    Также стоит упомянуть, что 10 * * * * * недействительно в любом случае (имеет слишком много полей) – steeldriver 22 June 2017 в 12:10
  • 2
    @steeldriver - спасибо за комментарий! Я обновил свой ответ, чтобы отразить его – Yaron 22 June 2017 в 12:53
  • 3
    @JosefKlimuk - С удовольствием слышу, что это было полезно. – Yaron 26 June 2017 в 12:10
  • 4
    @JosefKlimuk - Примечание: когда ответ вам помог, пожалуйста, upvote it (вы можете проголосовать за несколько полезных ответов). Кроме того, если ответ решил ваш вопрос, вы должны выбрать один ответ, который наилучшим образом отвечает на ваш вопрос, а принимает it – Yaron 26 June 2017 в 12:10
У вас должно быть пробелы между * Также, как упоминалось @steeldriver - у вас слишком много полей

Добавление пробелов и удаление дополнительных * должны работать:

10 * * * * /path-to-link/

Дополнительная информация - how-do Я добавляю задания в cron под linux

Пример: Запуск сценария задания резервного копирования cron Если вы хотите, чтобы сценарий с именем /root/backup.s h запускался каждый день в 3 часа ночи, ваш crontab запись будет выглядеть следующим образом. Сначала установите cronjob, выполнив следующую команду: crontab -e Добавьте следующую запись: 0 3 * * * /root/backup.sh Сохраните и закройте файл. Как использовать операторы? Оператор позволяет указать несколько значений в поле. Существует три оператора: Звездочка (*): Этот оператор задает все возможные значения для поля. Например, звездочка в поле времени часа будет эквивалентна каждому часу, или звездочка в поле месяца будет эквивалентна каждому месяцу. Запятая (,): Этот оператор задает список значений, например: «1,5,10,15,20, 25». Символ (-): этот оператор задает диапазон значений, например: «5-15» дней, что эквивалентно набору «5,6,7,8,9, ...., 13,14,15», используя оператор запятой. Сепаратор (/): этот оператор задает значение шага, например: «0-23 /» можно использовать в поле часов, чтобы указывать выполнение команды каждый час. Шаги также разрешены после звездочки, поэтому, если вы хотите сказать каждые два часа, просто используйте * / 2.
4
ответ дан 18 July 2018 в 11:15
У вас должно быть пробелы между * Также, как упоминалось @steeldriver - у вас слишком много полей

Добавление пробелов и удаление дополнительных * должны работать:

10 * * * * /path-to-link/

Дополнительная информация - how-do Я добавляю задания в cron под linux

Пример: Запуск сценария задания резервного копирования cron Если вы хотите, чтобы сценарий с именем /root/backup.s h запускался каждый день в 3 часа ночи, ваш crontab запись будет выглядеть следующим образом. Сначала установите cronjob, выполнив следующую команду: crontab -e Добавьте следующую запись: 0 3 * * * /root/backup.sh Сохраните и закройте файл. Как использовать операторы? Оператор позволяет указать несколько значений в поле. Существует три оператора: Звездочка (*): Этот оператор задает все возможные значения для поля. Например, звездочка в поле времени часа будет эквивалентна каждому часу, или звездочка в поле месяца будет эквивалентна каждому месяцу. Запятая (,): Этот оператор задает список значений, например: «1,5,10,15,20, 25». Символ (-): этот оператор задает диапазон значений, например: «5-15» дней, что эквивалентно набору «5,6,7,8,9, ...., 13,14,15», используя оператор запятой. Сепаратор (/): этот оператор задает значение шага, например: «0-23 /» можно использовать в поле часов, чтобы указывать выполнение команды каждый час. Шаги также разрешены после звездочки, поэтому, если вы хотите сказать каждые два часа, просто используйте * / 2.
4
ответ дан 24 July 2018 в 19:45
  • 1
    Также стоит упомянуть, что 10 * * * * * недействительно в любом случае (имеет слишком много полей) – steeldriver 22 June 2017 в 12:10
  • 2
    @steeldriver - спасибо за комментарий! Я обновил свой ответ, чтобы отразить его – Yaron 22 June 2017 в 12:53
  • 3
    @JosefKlimuk - С удовольствием слышу, что это было полезно. – Yaron 26 June 2017 в 12:10
  • 4
    @JosefKlimuk - Примечание: когда ответ вам помог, пожалуйста, upvote it (вы можете проголосовать за несколько полезных ответов). Кроме того, если ответ решил ваш вопрос, вы должны выбрать один ответ, который наилучшим образом отвечает на ваш вопрос, а принимает it – Yaron 26 June 2017 в 12:10

Другие вопросы по тегам:

Похожие вопросы: