Làm cách nào để kiểm tra tình trạng nâng cấp apt apt-get nâng cấp sau khi mất kết nối ssh?


16

Thông thường tôi nâng cấp cài đặt Ubuntu thông qua kết nối ssh. Đôi khi kết nối ssh này sẽ bị mất hoặc tôi vô tình đóng cửa sổ terminal.

Có thể kiểm tra trạng thái nâng cấp sau khi ssh đăng nhập lại vào máy tính không?

Câu trả lời:


33

Các nhật ký sau có liên quan đến nâng cấp apt:

/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log

Nếu lệnh là dist-upgrade, có các bản ghi bổ sung trong:

/var/log/dist-upgrade

FYI, thường an toàn khi chỉ chạy lại bản nâng cấp và apt sẽ tiếp tục ở nơi nó dừng lại khi quá trình bị chết do ngắt kết nối. Tuy nhiên...

Một Primer màn hình GNU:

Khi ssh'ing vào một máy chủ từ xa và bắt đầu một quá trình chạy dài ở nền trước, cách tốt nhất là sử dụng GNU Screen. Màn hình cung cấp một thiết bị đầu cuối ảo tiếp tục chạy ngay cả khi kết nối ssh của bạn bị mất.

Cài đặt màn hình:

sudo apt-get install screen

Chạy màn hình:

screen

Sau khi chạy màn hình, bạn sẽ nhận được một dấu nhắc dòng lệnh như với một thiết bị đầu cuối bình thường. Sau đó, bạn có thể chạy nâng cấp từ màn hình bên trong:

sudo apt-get upgrade

Để hiểu cách thức hoạt động của nó, hãy "tách" màn hình bằng cách nhấn Ctrl + a, d . Điều này sẽ đưa bạn trở lại thiết bị đầu cuối không có màn hình. Bạn có thể xem danh sách các màn hình đang chạy với

screen -list

Nếu bạn chỉ có một màn hình đang chạy, bạn có thể gắn lại nó với:

screen -raAd

(Màn hình này tách ra trong trường hợp nó được gắn ở nơi khác và gắn lại nó vào thiết bị đầu cuối mà bạn hiện đang chạy.)

Thông thường, bạn không thể cuộn 'bình thường' từ trong màn hình mà không cần thiết lập thêm. Để cuộn trong màn hình, nhấn Ctrl-Esc để vào chế độ con trỏ. Sau đó bạn có thể cuộn xuống và lên với jk . Nhấn Esc lần nữa để thoát chế độ con trỏ.

Có rất nhiều tài nguyên trên mạng có sẵn cho các chức năng màn hình bổ sung. Nó là một công cụ tiêu chuẩn vô giá cho quản trị hệ thống.

Xem thêm:


2
+1 voor thực sự trả lời câu hỏi VÀ đề cập đến màn hình :)
Nanne

2
Ngoài ra, screen -x- gắn vào màn hình đang chạy mà không tách rời người khác, làm cho phiên màn hình trở thành "nhiều người chơi".
SF.

Điều này là hữu ích, nhưng bao gồm phòng ngừa ngoài câu trả lời. Ngoài ra, nhật ký chính xác để xem được trích dẫn, nhưng người dùng mới bắt đầu có thể không quen với tail -ftùy chọn lệnh và cờ, điều này sẽ cho phép người dùng quan sát tiến trình trong thời gian thực (hoặc thấy rằng nó bị lỗi) khi "tái đăng nhập." Tôi biết nó đã cũ và được chấp nhận, nhưng tôi nghĩ nên thêm đuôi vào tập lệnh này, vì thiếu chi tiết này, câu trả lời dưới đây của @TheAnonymousBear trực tiếp hơn và chính xác hơn. @doublerebel
oemb1905

10

Ngoài câu trả lời của doublerebel, tôi nhận thấy một sự thay thế ngày hôm nay.

Tôi đã đi ngủ đêm qua sau khi bắt đầu nâng cấp qua SSH. Tôi ngu ngốc quên khởi động nó screenvà mất phiên SSH của tôi qua đêm.

Tôi vừa mới bắt đầu nghiên cứu rettythì tôi nhận thấy rootđã bắt đầu một screenphiên.

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

Vì vậy, tôi đã liệt kê rootcác màn hình và đính kèm với nó:

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

Bam! Tôi đã trở lại trong trò chơi.


Tôi nghĩ bạn quên bắt đầu màn hình. Màn hình chạy như thế nào nếu bạn "quên khởi động màn hình?"
oemb1905

1
@ oemb1905 Bởi vì Ubuntu bắt đầu một cho bạn, theo giả định rằng bạn sẽ quên :)
Huckle

Thật thú vị, đây có phải là do-release-upgradelệnh dành riêng cho Ubuntu không? Tôi chưa bao giờ có nhu cầu kiểm tra Debian, thứ mà tôi sử dụng riêng, bởi vì tôi luôn chạy nó bằng tay, tách ra và sau đó quay lại. Và, tất nhiên, chúng tôi sử dụng sudo apt dist-upgradesau khi thay đổi /etc/apt/sources.list.
oemb1905

Tôi đã tìm thấy nó, vâng, đây là phần mềm dành riêng cho Ubuntu, vì vậy mọi người dùng Debian thuần túy như tôi đã sửa lỗi từ AskUbfox không nên cho rằng điều này sẽ xảy ra trên hệ thống của họ. Chủ đề gốc về chủ đề này: serverfault.com/questions/387547/ từ
oemb1905

Làm thế nào để nó biết bạn sẽ có màn hình cài đặt?
Nacht - Phục hồi Monica

4

Để xem đầu ra thời gian thực từ aptcông việc nền , sử dụng:

sudo tail -f /var/log/apt/term.log

Đây là câu trả lời đúng - câu trả lời ở trên chỉ nêu vị trí của một số nhật ký hữu ích sau đó chuyển sang phòng ngừa. Câu trả lời này cho người dùng thấy nơi cần tìm và cách xem nó ( tail) sau cái mà họ gọi là "đăng nhập lại".
oemb1905

0

Có chính xác cùng một vấn đề, mất kết nối của tôi và quá trình dpkg đang chờ đầu vào.

Có thể lần sau hãy thử: sudo dpkg --configure -a


1
Khi tôi thử điều này, tất cả những gì tôi nhận được là,"dpkg: error: dpkg frontend is locked by another process"
CivilMeierFan

Tôi đã thực hiện một grep bối cảnh để thấy rằng rất may đó là một quy trình con tạo ra một hộp thoại thông báo đang chờ đầu vào, vì vậy tôi có thể giết nó mà không làm hỏng toàn bộ quá trình nâng cấp apt.
CivilMeierFan

Cách tiếp cận này bỏ qua việc điều tra xem liệu quy trình dpkg có còn chạy trên hệ thống khi đăng nhập lại hay không. Hơn nữa, nếu nó đang chạy, thì điều này có thể có hại ở mức tồi tệ nhất, hoặc chỉ là thực hành tồi tệ nhất, vì dpkg sẽ có một khóa trên nó /var/dpkg/locknếu nó vẫn đang chạy. Và bất kể, nó không trả lời câu hỏi về cách "kiểm tra trạng thái nâng cấp" và thay vào đó, sẽ chỉ hoạt động nếu nâng cấp bị hỏng (và chỉ sau đó nếu khóa không hoạt động). Tôi sẽ không đề nghị phương pháp này cho bất cứ ai. Trân trọng, oemb1905
oemb1905
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.