Как запустить задание cron с помощью команды sudo

GNU Screen - это ответ, который вы искали - но это очень похоже на Vi. У вас есть много знаний о командах для настройки успешной среды экрана. Вот вам кое-что, чтобы вы начали. Прежде всего, вы захотите .screenrc http://paste.ubuntu.com/473764/ сохранить его на удаленном сервере в домашней папке ваших пользователей. Следующий экран установки на удаленном компьютере (sudo apt-get install screen). Затем вы хотите запустить его, вот несколько команд для «запуска экрана»:

screen - Это довольно просто. Он запускает новую сессию экрана screen -ls - список всех активных сеансов экрана. Да, вы можете иметь несколько терминалов внутри нескольких экранов. SOWEET.

Образец

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Это возобновит сеанс сеанса отдельного пользователя, IE: screen -x 16467

. Когда вы находитесь в a Screen (и вы использовали мой файл .screenrc). Ниже вы увидите следующее:

(LOAD) 0$* bash

Какая загрузка серверов и список всех открытых «терминальных вкладок». В настоящее время только одно окно. Введите что-нибудь, затем нажмите комбинацию клавиш: Ctrl + A, затем нажмите c. Ctrl + A - это escape-последовательность. Все команды начинаются с этой комбинации. c создает новую вкладку. Вы заметите, что нижний колонтитул имеет (LOAD) 0-$ bash 1$* bash, который показывает, что открыта еще одна вкладка, а активная вкладка - номер 1. Вы можете открыть максимум 60 вкладок на сеанс сеанса.

Если вы хотите выйти , но продолжайте использовать Ctrl + A, затем d, который отключит ваш сеанс. Наконец, вы можете закрыть вкладки, используя Ctrl + A, затем k, который убьет эту вкладку (если она закроется), но обычно вы можете просто ввести exit, как если бы вы были в терминале, и он закроет эту вкладку.

Наконец, чтобы перечислить все открытые окна, вы можете ввести Ctrl + A, затем ".

На экране есть множество вариантов, которые вы должны пролистывать над файлом man. Есть некоторые недостатки. Вы не можете использовать свою полосу прокрутки на экране, которую вы должны использовать для управления буфером, но этого достаточно, чтобы вы начали видеть, является ли это жизнеспособным вариантом. Отличная вещь об этом и кое-что, что я имел дело с системным администратором - сетевое подключение. Если ваша сеть выпадет, ваши операции не будут потеряны! Поскольку экран работает на сервере. Вам просто нужно снова войти в систему через SSH, затем screen -ls и screen -x вернуться в ваш сеанс.

1
задан 10 January 2014 в 23:57

2 ответа

Если вы помещаете скрипт из одного из каталогов cron (/etc/cron.*), вам не нужно использовать sudo, поскольку он работает от имени root.

Если вы используете crontab, вам нужно использовать crontab root. Это запустит его как root, а также не потребуется sudo.

sudo crontab -e
25
ответ дан 25 May 2018 в 07:45
  • 1
    Я бы также поместил команду в /etc/cron.hourly/something. Для этого нужны эти каталоги. – John S Gruber 23 August 2012 в 20:37
  • 2
    Нет. Вы можете поместить его в /etc/cron.SOMETHING/SCRIPT, но я бы не стал делать то и другое. Оба будут давать примерно ту же функцию, хотя, используя crontab, у вас будет немного больше возможностей для того, как часто / когда все работает. – tgm4883 23 August 2012 в 22:40
  • 3
    Я должен был четко указать, что я имел в виду это как альтернативу. Благодарю. – John S Gruber 23 August 2012 в 22:43

Выполнить следующую команду в терминале

sudo visudo

Добавлена ​​следующая строка в конец файла:

vidyadhar  ALL= NOPASSWD: /bin/rm

В приведенном выше примере vidyadhar является именем пользователя, и оно будет не запрашивать пароль, если вы выполняете команду rm через vidyadhar.

0
ответ дан 25 May 2018 в 07:45
  • 1
    Хм .. Тогда любая вредоносная команда, такая как sudo rm -rf 'slash' (, не запускает эту команду ), запускается от этого пользователя, не требует пароля .. Я не знаю, он чувствует себя небезопасно, нет ? – SirCharlo 9 August 2012 в 23:09
  • 2
    Я знаю это. Ваш подход хорош. Но я использую вышеприведенный подход для предоставления другим пользователям права на прекращение / запуск определенных сервисов. – Vidyadhar 9 August 2012 в 23:13
  • 3
    Это крайне плохая идея. Пожалуйста, не делайте этого. – bkanuka 29 June 2014 в 06:38
  • 4
    Возможно, vidyadhar ALL= NOPASSWD: /bin/rm somefile будет более безопасным. – Wernfried Domscheit 28 July 2016 в 11:28

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

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