🖥️ Sử Dụng Screen Trong Linux
📋 Giới Thiệu
Screen là một công cụ mạnh mẽ cho phép bạn:
- Tạo nhiều phiên terminal ảo
- Chạy các tiến trình trong nền
- Giữ các phiên làm việc khi ngắt kết nối SSH
- Chia sẻ phiên làm việc với người khác
🛠️ Cài Đặt Screen
# Ubuntu/Debian
sudo apt update
sudo apt install screen
# CentOS/RHEL
sudo yum install screen
# Fedora
sudo dnf install screen
📝 Các Lệnh Cơ Bản
1. Tạo Phiên Screen Mới
# Tạo phiên mới với tên tùy chọn
screen -S session_name
# Ví dụ
screen -S backup
2. Quản Lý Phiên Screen
# Liệt kê các phiên đang chạy
screen -ls
# Kết quả có dạng:
# There are screens on:
# 12345.backup (Detached)
# 67890.monitoring (Attached)
3. Thoát và Kết Nối Lại
# Thoát khỏi phiên hiện tại (detach)
# Nhấn Ctrl + A, sau đó nhấn D
# Kết nối lại phiên đã thoát
screen -r session_name
# Kết nối lại phiên duy nhất đang chạy
screen -r
4. Kết Thúc Phiên Screen
# Từ bên trong phiên screen
exit
# Hoặc từ terminal khác
screen -X -S session_name quit
🚀 Ví Dụ Thực Tế
1. Chạy Backup Database Trong Nền
# Tạo phiên screen mới
screen -S db_backup
# Thực hiện backup
mysqldump -u root -p database_name > backup.sql
# Thoát phiên (Ctrl + A, D)
2. Giám Sát Log File
# Tạo phiên screen mới
screen -S log_monitor
# Theo dõi log
tail -f /var/log/syslog
# Thoát phiên (Ctrl + A, D)
⌨️ Phím Tắt Hữu Ích
Phím Tắt | Chức Năng |
---|---|
Ctrl+a c | Tạo cửa sổ mới |
Ctrl+a n | Chuyển đến cửa sổ tiếp theo |
Ctrl+a p | Chuyển đến cửa sổ trước |
Ctrl+a " | Liệt kê và chọn cửa sổ |
Ctrl+a A | Đặt tên cho cửa sổ hiện tại |
Ctrl+a d | Thoát phiên hiện tại |
Ctrl+a ? | Hiển thị trợ giúp |
⚙️ Cấu Hình Screen
Tạo file ~/.screenrc
để cấu hình Screen:
# Hiển thị thanh trạng thái
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
# Tăng buffer size
defscrollback 10000
# Tắt màn hình chào
startup_message off
# Tự động detach khi mất kết nối
autodetach on
🔍 Xử Lý Sự Cố
1. Không Thể Tạo Screen Mới
# Kiểm tra quyền
ls -la $(which screen)
# Kiểm tra process
ps aux | grep screen
2. Không Thể Attach Screen
# Kiểm tra trạng thái screen
screen -ls
# Force detach nếu cần
screen -D -r session_name
3. Screen Bị Treo
# Kill screen session
screen -X -S session_name quit
# Hoặc kill process
pkill screen