Відповіді:
Наступні журнали пов’язані з влучними оновленнями:
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log
Якщо команда була dist-upgrade
, у додатку є додаткові журнали:
/var/log/dist-upgrade
FYI, зазвичай безпечно просто повторно запустити оновлення, і вкладення триватиме там, де воно припинилося, коли процес помер через відключення. Однак ...
GNU Screen Primer:
Коли ssh'ing на віддалений сервер і запускає тривалий процес на передньому плані, найкращою практикою є використання GNU Screen. Екран забезпечує віртуальний термінал, який продовжує працювати, навіть якщо втрачено ваше ssh-з'єднання.
Екран встановлення:
sudo apt-get install screen
Запустити екран:
screen
Після запуску екрана ви отримаєте рядок командного рядка, як і у звичайного терміналу. Потім можна запустити оновлення з внутрішнього екрана:
sudo apt-get upgrade
Щоб зрозуміти, як це працює, "від'єднайте" екран натисканням клавіш Ctrl + a, d . Це поверне вас до неекранного терміналу. Ви можете побачити список запущених екранів
screen -list
Якщо у вас працює лише один екран, ви можете знову встановити його за допомогою:
screen -raAd
(Це знімає екран на випадок, якщо він приєднаний в іншому місці, і повторно приєднає його до терміналу, який ви зараз працюєте.)
Зазвичай ви не можете прокручувати "нормально" зсередини екрану без додаткових налаштувань. Для прокрутки в екрані натисніть Ctrl-Esc, щоб увійти в режим курсору. Потім можна прокручувати вниз і вгору за допомогою j та k . Знову натисніть клавішу Esc, щоб вийти з режиму курсору.
У мережі є набагато більше ресурсів, доступних для додаткових функцій екрану. Це неоціненний стандартний інструмент для адміністрування системи.
Дивись також:
screen -x
- приєднати до запущеного екрану, не відриваючи інших, зробивши сеанс екрану "багатокористувацьким".
tail -f
команд та прапорців, що дозволить користувачеві спостерігати за прогресом у режимі реального часу (або бачити, що він вийшов з ладу) після " вхід. " Я знаю його давнє і прийняте, але я думаю, що хвостик слід додати до цього набору інструкцій, оскільки, якщо не вистачає цієї деталі, відповідь, подана нижче від @TheAnonymousBear, є більш прямою і суттєвою. @doublerebel
sudo dpkg --configure -a
продовжуватимуть вдосконалене оновлення, коли це ще витрачалось.
Окрім відповіді "doublerebel", сьогодні я помітив альтернативу.
Я лягав спати минулої ночі після початку оновлення над SSH. Я тупо забув запустити його screen
і втратив сеанс SSH протягом ночі.
Я збирався розпочати дослідження, retty
коли помітив, що root
розпочав screen
сеанс.
me@GAMMA:~$ ps aux | grep -E 'release|upgrade|apt'
root 6208 0.0 0.0 29140 1628 ? Ss 01:57 0:05 SCREEN -e \0\0 -L -c screenrc -S ubuntu-release-upgrade-screen-window /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6209 0.2 5.6 287428 93144 pts/2 Ss+ 01:57 3:13 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6239 0.0 0.0 50052 1184 ? Ss 01:58 0:00 /usr/sbin/sshd -o PidFile=/var/run/release-upgrader-sshd.pid -p 1022
root 7306 0.0 4.6 287432 77284 pts/2 S+ 02:43 0:08 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
me 26829 0.0 0.0 9440 956 pts/5 S+ 22:18 0:00 grep --color=auto -E release|upgrade|apt
Тому я перерахував root
екрани та додав до нього:
me@GAMMA:~$ sudo screen -list
There is a screen on:
6208.ubuntu-release-upgrade-screen-window (12/11/2013 01:57:58 AM) (Detached)
1 Socket in /var/run/screen/S-root.
me@GAMMA:~$ sudo screen -x -r
І Бам! Я знову в грі.
do-release-upgrade
командою, характерною для ubuntu? У мене ніколи не було необхідності перевіряти Debian, яким я користуюся виключно, тому що я завжди запускаю його вручну, відключаю, а потім повертаюся. І, звичайно, ми використовуємо sudo apt dist-upgrade
після зміни /etc/apt/sources.list
замість цього.
Щоб побачити вихід у реальному часі з фонового apt
завдання, використовуйте:
sudo tail -f /var/log/apt/term.log
tail
) після того, що вони назвали "повторним входом".
З'явилася точно така ж проблема, я втратив зв’язок і процес dpkg чекав на введення.
Можливо, наступного разу спробуйте: sudo dpkg --configure -a
"dpkg: error: dpkg frontend is locked by another process"
/var/dpkg/lock
якщо він все ще працює. І незалежно, він не відповідає на питання про те, як "перевірити стан оновлення", а натомість буде працювати лише в тому випадку, коли оновлення вийшло з ладу (і лише тоді, якщо блокування не активне). Я б не рекомендував такого підходу нікому. З повагою, oemb1905