Как создать команду cron, которая будет выполнять команду на отдельном экране?

Я создал экран, но могу ли я каким-то образом выполнить команду, которая будет запускать команды на отдельном экране?

Я даже не знаю, возможно ли это, но если это так, это будет вероятно, будет для вас простым и легким.

Спасибо за ваши усилия.

5
задан 28 November 2010 в 20:00

16 ответов

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это только

screen -d -m -S mysession -t label sleep 1m

с оговоркой, что при выходе из процесса экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в своем .screenrc

defzombie ZZ

, что будет означать, что экраны зависают после выхода их процесса, пока вы не нажмете Z.

1
ответ дан 25 July 2018 в 22:50

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

Получите сценарий «inscreen» и поместите его в ~/bin/: # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs У вас будет чтобы это произошло при каждой загрузке, или добавьте «-ново-если необходимо» к каждой записи crontab ниже. Добавить записи в cron, используя inscreen, crontab выглядит так: PATH = /home/YOURNAME/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * inscreen cronjobs -- sh -c 'echo $(date): start; sleep 30; echo $(date): end; sleep 4' 0 0 * * 0 inscreen cronjobs --keep-open --title reminder echo ==== CALL YOUR MOM ==== 0 0 * * 1 inscreen cronjobs --window 0 ls /tmp

Вышеуказанное будет:

Получить сценарий «неэкранированный» и поместить его в ~/bin/ : # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen каждое воскресенье в полночь открывает новое окно с названием «напоминание», в котором говорится «==== ЗВОНИТЕ ВАШУ МОМ ====», и вам нужно нажать enter, чтобы закрыть окно. создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить «-ново-если необходимо» для каждой записи crontab ниже.
3
ответ дан 25 July 2018 в 22:50
  • 1
    как это работает с cron? Когда я вызываю экран -X stuff $ FOO из оболочки, он работает как cronjob, кажется, не имеет никакого эффекта ... – user 16 February 2011 в 12:51

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это только

screen -d -m -S mysession -t label sleep 1m

с оговоркой, что при выходе из процесса экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в своем .screenrc

defzombie ZZ

, что будет означать, что экраны зависают после выхода их процесса, пока вы не нажмете Z.

1
ответ дан 27 July 2018 в 00:41

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

Получите сценарий «inscreen» и поместите его в ~/bin/: # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs У вас будет чтобы это произошло при каждой загрузке, или добавьте «-ново-если необходимо» к каждой записи crontab ниже. Добавить записи в cron, используя inscreen, crontab выглядит так: PATH = /home/YOURNAME/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * inscreen cronjobs -- sh -c 'echo $(date): start; sleep 30; echo $(date): end; sleep 4' 0 0 * * 0 inscreen cronjobs --keep-open --title reminder echo ==== CALL YOUR MOM ==== 0 0 * * 1 inscreen cronjobs --window 0 ls /tmp

Вышеуказанное будет:

Получить сценарий «неэкранированный» и поместить его в ~/bin/ : # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen каждое воскресенье в полночь открывает новое окно с названием «напоминание», в котором говорится «==== ЗВОНИТЕ ВАШУ МОМ ====», и вам нужно нажать enter, чтобы закрыть окно. создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить «-ново-если необходимо» для каждой записи crontab ниже.
3
ответ дан 27 July 2018 в 00:41
  • 1
    как это работает с cron? Когда я вызываю экран -X stuff $ FOO из оболочки, он работает как cronjob, кажется, не имеет никакого эффекта ... – user 16 February 2011 в 12:51

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это только

screen -d -m -S mysession -t label sleep 1m

с оговоркой, что при выходе из процесса экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в своем .screenrc

defzombie ZZ

, что будет означать, что экраны зависают после выхода их процесса, пока вы не нажмете Z.

1
ответ дан 2 August 2018 в 04:13

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

Получите сценарий «inscreen» и поместите его в ~/bin/: # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs У вас будет чтобы это произошло при каждой загрузке, или добавьте «-ново-если необходимо» к каждой записи crontab ниже. Добавить записи в cron, используя inscreen, crontab выглядит так: PATH = /home/YOURNAME/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * inscreen cronjobs -- sh -c 'echo $(date): start; sleep 30; echo $(date): end; sleep 4' 0 0 * * 0 inscreen cronjobs --keep-open --title reminder echo ==== CALL YOUR MOM ==== 0 0 * * 1 inscreen cronjobs --window 0 ls /tmp

Вышеуказанное будет:

Получить сценарий «неэкранированный» и поместить его в ~/bin/ : # download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen каждое воскресенье в полночь открывает новое окно с названием «напоминание», в котором говорится «==== ЗВОНИТЕ ВАШУ МОМ ====», и вам нужно нажать enter, чтобы закрыть окно. создайте сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить «-ново-если необходимо» для каждой записи crontab ниже.
3
ответ дан 2 August 2018 в 04:13
  • 1
    как это работает с cron? Когда я вызываю экран -X stuff $ FOO из оболочки, он работает как cronjob, кажется, не имеет никакого эффекта ... – user 16 February 2011 в 12:51

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

  • Получите скрипт 'inscreen' и поместите его в ~ / bin / : & # 35 скачать скрипт 'inscreen' из https://gist.github.com/1019125 wget -O ~ / bin / inscreen https://gist.github.com/gists/1019125/download chmod 755 ~ / bin / inscreen
  • создать сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить
  • Добавить записи в cron, используя inscreen , crontab выглядит так: PATH = / home / YOURNAME / bin: / usr / sbin: / usr / bin: / sbin: / bin * & nbsp; * & nbsp; * & nbsp; * & nbsp; * inscreen cronjobs - sh -c 'echo $ (date): start; сон 30; echo $ (date): end; sleep 4 '0 & nbsp; 0 & nbsp; * & nbsp; * 0 inscreen cronjobs --keep-open --title reminder echo ==== ВЫЗОВ ВАШЕЙ МАМЫ ==== 0 & nbsp; 0 & nbsp; * & nbsp; * 1 inscreen cronjobs --window 0 ls / tmp

Вышеуказанное:

  • каждую минуту открывает новое окно на сеансе экрана «cronjobs», который записывает дату, спит в течение 30 секунд и затем выходит. Окно будет закрываться при выходе.
  • каждое воскресенье в полночь открывает новое окно с надписью «напоминание», в котором говорится: «==== ВЫЗОВ ВАШЕЙ МОМЫ ====» и требует, чтобы вы нажали кнопку ввода, чтобы закрыть окно
  • каждый понедельник в полночь запустит 'ls / tmp' в первом окне сеанса 'cronjobs'. Обратите внимание, однако, что никакие другие задания «-window 0» не могут выполняться одновременно.
3
ответ дан 4 August 2018 в 20:18

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это просто

  screen -d -m -S mysession -t label sleep 1m  

с оговоркой, что, когда процесс выходы, экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в свой .screenrc

  defzombie ZZ  

, что будет означать, что экраны зависают после их процесса выходите, пока не нажмете Z.

1
ответ дан 4 August 2018 в 20:18

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

  • Получите скрипт 'inscreen' и поместите его в ~ / bin / : & # 35 скачать скрипт 'inscreen' из https://gist.github.com/1019125 wget -O ~ / bin / inscreen https://gist.github.com/gists/1019125/download chmod 755 ~ / bin / inscreen
  • создать сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить
  • Добавить записи в cron, используя inscreen , crontab выглядит так: PATH = / home / YOURNAME / bin: / usr / sbin: / usr / bin: / sbin: / bin * & nbsp; * & nbsp; * & nbsp; * & nbsp; * inscreen cronjobs - sh -c 'echo $ (date): start; сон 30; echo $ (date): end; sleep 4 '0 & nbsp; 0 & nbsp; * & nbsp; * 0 inscreen cronjobs --keep-open --title reminder echo ==== ВЫЗОВ ВАШЕЙ МАМЫ ==== 0 & nbsp; 0 & nbsp; * & nbsp; * 1 inscreen cronjobs --window 0 ls / tmp

Вышеуказанное:

  • каждую минуту открывает новое окно на сеансе экрана «cronjobs», который записывает дату, спит в течение 30 секунд и затем выходит. Окно будет закрываться при выходе.
  • каждое воскресенье в полночь открывает новое окно с надписью «напоминание», в котором говорится: «==== ВЫЗОВ ВАШЕЙ МОМЫ ====» и требует, чтобы вы нажали кнопку ввода, чтобы закрыть окно
  • каждый понедельник в полночь запустит 'ls / tmp' в первом окне сеанса 'cronjobs'. Обратите внимание, однако, что никакие другие задания «-window 0» не могут выполняться одновременно.
3
ответ дан 6 August 2018 в 04:18

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это просто

  screen -d -m -S mysession -t label sleep 1m  

с оговоркой, что, когда процесс выходы, экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в свой .screenrc

  defzombie ZZ  

, что будет означать, что экраны зависают после их процесса выходите, пока не нажмете Z.

1
ответ дан 6 August 2018 в 04:18

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это просто

  screen -d -m -S mysession -t label sleep 1m  

с оговоркой, что, когда процесс выходы, экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в свой .screenrc

  defzombie ZZ  

, что будет означать, что экраны зависают после их процесса выходите, пока не нажмете Z.

1
ответ дан 7 August 2018 в 22:23

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

  • Получите скрипт 'inscreen' и поместите его в ~ / bin / : & # 35 скачать скрипт 'inscreen' из https://gist.github.com/1019125 wget -O ~ / bin / inscreen https://gist.github.com/gists/1019125/download chmod 755 ~ / bin / inscreen
  • создать сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить
  • Добавить записи в cron, используя inscreen , crontab выглядит так: PATH = / home / YOURNAME / bin: / usr / sbin: / usr / bin: / sbin: / bin * & nbsp; * & nbsp; * & nbsp; * & nbsp; * inscreen cronjobs - sh -c 'echo $ (date): start; сон 30; echo $ (date): end; sleep 4 '0 & nbsp; 0 & nbsp; * & nbsp; * 0 inscreen cronjobs --keep-open --title reminder echo ==== ВЫЗОВ ВАШЕЙ МАМЫ ==== 0 & nbsp; 0 & nbsp; * & nbsp; * 1 inscreen cronjobs --window 0 ls / tmp

Вышеуказанное:

  • каждую минуту открывает новое окно на сеансе экрана «cronjobs», который записывает дату, спит в течение 30 секунд и затем выходит. Окно будет закрываться при выходе.
  • каждое воскресенье в полночь открывает новое окно с надписью «напоминание», в котором говорится: «==== ВЫЗОВ ВАШЕЙ МОМЫ ====» и требует, чтобы вы нажали кнопку ввода, чтобы закрыть окно
  • каждый понедельник в полночь запустит 'ls / tmp' в первом окне сеанса 'cronjobs'. Обратите внимание, однако, что никакие другие задания «-window 0» не могут выполняться одновременно.
3
ответ дан 7 August 2018 в 22:23

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это просто

  screen -d -m -S mysession -t label sleep 1m  

с оговоркой, что, когда процесс выходы, экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в свой .screenrc

  defzombie ZZ  

, что будет означать, что экраны зависают после их процесса выходите, пока не нажмете Z.

1
ответ дан 10 August 2018 в 10:33

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

  • Получите скрипт 'inscreen' и поместите его в ~ / bin / : & # 35 скачать скрипт 'inscreen' из https://gist.github.com/1019125 wget -O ~ / bin / inscreen https://gist.github.com/gists/1019125/download chmod 755 ~ / bin / inscreen
  • создать сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить
  • Добавить записи в cron, используя inscreen , crontab выглядит так: PATH = / home / YOURNAME / bin: / usr / sbin: / usr / bin: / sbin: / bin * & nbsp; * & nbsp; * & nbsp; * & nbsp; * inscreen cronjobs - sh -c 'echo $ (date): start; сон 30; echo $ (date): end; sleep 4 '0 & nbsp; 0 & nbsp; * & nbsp; * 0 inscreen cronjobs --keep-open --title reminder echo ==== ВЫЗОВ ВАШЕЙ МАМЫ ==== 0 & nbsp; 0 & nbsp; * & nbsp; * 1 inscreen cronjobs --window 0 ls / tmp

Вышеуказанное:

  • каждую минуту открывает новое окно на сеансе экрана «cronjobs», который записывает дату, спит в течение 30 секунд и затем выходит. Окно будет закрываться при выходе.
  • каждое воскресенье в полночь открывает новое окно с надписью «напоминание», в котором говорится: «==== ВЫЗОВ ВАШЕЙ МОМЫ ====» и требует, чтобы вы нажали кнопку ввода, чтобы закрыть окно
  • каждый понедельник в полночь запустит 'ls / tmp' в первом окне сеанса 'cronjobs'. Обратите внимание, однако, что никакие другие задания «-window 0» не могут выполняться одновременно.
3
ответ дан 10 August 2018 в 10:33

Примечание. Оригинальный плакат спросил: «Как я могу сделать это в cron». Я обновил ответ на адрес.

  • Получите скрипт 'inscreen' и поместите его в ~ / bin / : & # 35 скачать скрипт 'inscreen' из https://gist.github.com/1019125 wget -O ~ / bin / inscreen https://gist.github.com/gists/1019125/download chmod 755 ~ / bin / inscreen
  • создать сеанс экрана с именем «cronjobs»: screen -d -m -S cronjobs Вам нужно будет организовать это для каждой загрузки или добавить
  • Добавить записи в cron, используя inscreen , crontab выглядит так: PATH = / home / YOURNAME / bin: / usr / sbin: / usr / bin: / sbin: / bin * & nbsp; * & nbsp; * & nbsp; * & nbsp; * inscreen cronjobs - sh -c 'echo $ (date): start; сон 30; echo $ (date): end; sleep 4 '0 & nbsp; 0 & nbsp; * & nbsp; * 0 inscreen cronjobs --keep-open --title reminder echo ==== ВЫЗОВ ВАШЕЙ МАМЫ ==== 0 & nbsp; 0 & nbsp; * & nbsp; * 1 inscreen cronjobs --window 0 ls / tmp

Вышеуказанное:

  • каждую минуту открывает новое окно на сеансе экрана «cronjobs», который записывает дату, спит в течение 30 секунд и затем выходит. Окно будет закрываться при выходе.
  • каждое воскресенье в полночь открывает новое окно с надписью «напоминание», в котором говорится: «==== ВЫЗОВ ВАШЕЙ МОМЫ ====» и требует, чтобы вы нажали кнопку ввода, чтобы закрыть окно
  • каждый понедельник в полночь запустит 'ls / tmp' в первом окне сеанса 'cronjobs'. Обратите внимание, однако, что никакие другие задания «-window 0» не могут выполняться одновременно.
3
ответ дан 13 August 2018 в 17:01
  • 1
    как это работает с cron? Когда я вызываю экран -X stuff $ FOO из оболочки, он работает как cronjob, кажется, не имеет никакого эффекта ... – user 16 February 2011 в 12:51

ответ smoser хорош, хотя и немного сложный. Вы также можете просто упростить это просто

  screen -d -m -S mysession -t label sleep 1m  

с оговоркой, что, когда процесс выходы, экран просто исчезнет, ​​и вы не сможете увидеть, что он написал на экране. Это может быть или не совсем нормально для вашего дела. Вы можете изменить это, установив в свой .screenrc

  defzombie ZZ  

, что будет означать, что экраны зависают после их процесса выходите, пока не нажмете Z.

1
ответ дан 13 August 2018 в 17:01

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

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