Как автоматически перезагрузить после выполнения команды

Я устанавливаю обновления на наборе машин, и я просто хочу работать:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

внезапно на всех машинах (после закрытия, конечно) и позволяют им работать, не требуя моего входа для паролей. Однако вышеупомянутые команды не работают, потому что они все требуют корневого разрешения и таким образом требуют моего пароля каждый раз. Выполнение их всех под синглом sudo concatentated && кажется, не работает. Кроме того, если обновление будет иметь информацию о версии, то оно отобразит любую информацию о версии и останов, пока я не выйду less.

Как я выполняю это?

2
задан 7 January 2015 в 15:37

3 ответа

sudo -s предложит Вам Ваш пароль однажды, затем оставит Вас находящийся в корневой оболочке, которая остается до Вас exit. Там можно объединить команды в цепочку как apt-get update && apt-get upgrade -y && reboot.

5
ответ дан 19 November 2019 в 00:47

Действительно простое решение, если Вы - 'корень',

apt-get -y update && apt-get -y upgrade && reboot

И если Вы - пользователь в системе, во-первых удостоверьтесь, что пользователю включают в sudoers, затем введите:

sudo apt-get -y update && apt-get -y upgrade && reboot
0
ответ дан 19 November 2019 в 00:47

Таким образом, Вы не хотите, чтобы Ваш пользователь должен был ввести в пароле для использования sudo? Вы могли добавить строку как это в /etc/sudoers или файл в /etc/sudoers.d/

    username  ALL=(ALL) NOPASSWD: ALL
    

    Или просто позволить несколько программ как reboot и apt-get:

    username ALL=(ALL) NOPASSWD: /sbin/reboot, /usr/bin/apt-get
    

Мог бы хотеть изучить некоторых apt-get опции также как:
       -q, --quiet
           Quiet; produces output suitable for logging, omitting progress
           indicators. More q's will produce more quiet up to a maximum of 2.
           You can also use -q=# to set the quiet level, overriding the
           configuration file. Note that quiet level 2 implies -y; you should
           never use -qq without a no-action modifier such as -d, --print-uris
           or -s as APT may decide to do something you did not expect.
           Configuration Item: quiet.
    
       -y, --yes, --assume-yes
           Automatic yes to prompts; assume "yes" as answer to all prompts and
           run non-interactively. If an undesirable situation, such as
           changing a held package, trying to install a unauthenticated
           package or removing an essential package occurs then apt-get will
           abort. Configuration Item: APT::Get::Assume-Yes.
    
       --force-yes
           Force yes; this is a dangerous option that will cause apt to
           continue without prompting if it is doing something potentially
           harmful. It should not be used except in very special situations.
           Using force-yes can potentially destroy your system! Configuration
           Item: APT::Get::force-yes.
    

Или Вы могли вслепую передать по каналу несколько новых строк или "q" в apt-get, Я раньше устанавливал один пакет, который проигнорирует apt опции как -y и ожидайте нажатия клавиши (вероятно, в, он - preinst или postinst сценарий). Мог попробовать что-то как:

    {
    sleep 20
    echo
    echo "q"
    } | apt-get upgrade
    


И если Вы устанавливаете те же самые пакеты в каждой машине, Вы не должны update и upgrade каждый по Интернету, можно загрузить все необходимое .deb файлы однажды с:

    sudo apt-get install --download-only [packages]
    

    или

    sudo apt-get upgrade --download-only
    

затем установите их всех от локального / совместно используемая папка с
    sudo dpkg -iR /folder_of_debs
    

3
ответ дан 2 December 2019 в 01:33

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

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