Buổi 3. Shell Scripting, quản lí tiến trình, nhật ký hệ thống
📝 ĐỀ BÀI
1.Cài đặt CentOS
Câu 1
Thực hiện cài đặt
CentOS 6
(hoặcCentOS 7
,8
) vào máy tính cá nhân (hoặc máy ảo) của bạn (KHÔNG cần chụp màn hình minh hoạ)
Link file ISO CentOS 8
shell scripting
2. Quản trị với Câu 2.1
Thực hiện các lệnh bên dưới và cho biết kết quả của chúng (Chụp màn hình minh hoạ)
$ hostname $ hostname -I $ whoami $ df -H $ ps -eo pid,%mem,%cpu,comm --sort -rss
hostname
: Kiểm tra host hiện tạihostname -I
: Hiển thị tất cả địa chỉIPv4
mạng của host ()whoami
(Who Am I): hiển thị ra người dùng đang thao tácdf -H
: Kiểm tra thông tin tất cả ổ cứngps -eo pid,%mem,%cpu,comm --sort -rss | head -n 3
: Giải thích bên dưới💡 GIẢI THÍCH
ps
(Process Status) : công cụ quản lí tiến trình-eo
: Hiển thị tất cả tiến trình có chọn lọcpid
(Process ID) : Mã tiến trình%mem,%cpu
: Sử dụng bộ nhớ và vi xử lý tiến trình (%
)comm
: đường dẫn của tiến trình--sort
: sắp xếp tiến trình-rss
(resident set size) : đi chung vớivsz
, hiển thị dung lượng bộ nhớ được phân bổ cho tiến trình trongRAM
| head -n 3
: sử dụng ống dẫn (pipe
) để hiển thị 3 dòng đầu tiên
Câu 2.2
Viết
shell script
có têninfo.sh
thực hiện tất cả lệnh ở2.1
(Chụp màn hình minh hoạ)
Sử dụng
gedit + <file>
để tạo file như sau :Sử dụng lệnh
bash + <file>
để thực thi file :
Câu 2.3
Viết
shell script
có tênbackup.sh
thực hiện :
In ra ngày giờ hiện tại
Nén toàn bộ thư mục
/home
thành tập tin/tmp/<YYYY-MM-DD>.tar
(YYYY-MM-DD là ngày hiện tại, ví dụ : 2020-04-22.tar)In thông tin đầy đủ của tập tin
/tpmn/<YYYY-MM-DD>.tar
In ra thông tin thông báo
"Sao lưu thành công!!!!"
Thực thi
backup.sh
để kiểm tra (Chụp màn hình minh hoạ)
Sử dụng
gedit + <file>
để tạo file như sau :Sử dụng lệnh
bash + <file>
để thực thi file :
cron
3. Lên lịch công việc định kỳ với 💡 KIẾN THỨC
Cron
là một tiện ích trong Linux
cho phép máy tính thiết lập thời gian biểu để thực hiện công việc một cách định kỳ. Một file crontab
chứa danh sách các lệnh sẽ được thực thi, kèm theo thông tin về thời điểm lặp lại việc thực thi. Để hiệu chỉnh file crontab
với trình soạn thảo nano
, ta dùng lệnh sau :
$ export EDITOR=nano
$ crontab -e
Câu 3.1
Chạy lệnh
date
mỗi phút một lần, sau đó khi kết quả vào cuối tập tin/tmp/date.txt
(Chụp màn hình minh hoạ)
Dùng lệnh export EDITOR=<tên editor>
, để thay đổi trình chỉnh sửa mặc định
💡 GIẢI THÍCH
crontab -e
: chỉnh sửa filecrontab
crontab -l
: xem filecrontab
crontab -r
: xoá filecrontab
==> Sau một phút tự động sẽ cập nhật giờ trong file /tmp/data.txt
:
Câu 3.2
Thực thi
backup.sh
ở2.3
vào23:00 giờ ngày 10,20 và 30
hằng tháng (Chụp màn hình minh hoạ)
==> Cứ mỗi 23h ngày 10,20,30
hằng tháng tự động sẽ thực thi file backup.sh
4. Thao tác với tiến trình
Câu 4.1
Mở trình duyệt
Firefox
. Sau đó dùng lệnhps -aux
hoặcpgrep
tìm PID củaFirefox
.Tiếp theo, dùng lệnh
kill
để tạm dừng tiến trìnhFirefox
(Chụp màn hình minh hoạ). Điều gì xảy ra khi bạn dịch chuyển cửa sổFirefox
hoặc nhấn chọn menu của nó ngay lúc này ?
Sử dụng lệnh
pgrep
để tìm ID tiến trình :Sử dụng lệnh
kill -s STOP <PID>
sẽ tạm dừng tiến trình :💡 CHÚ Ý
Ngay lập tức ta không thể thao tác được gì từ
Firefox
Câu 4.2
Dùng lệnh
kill
để phục hồi trạng thái trước đó củaFirefox
và quan sát kết quả (Chụp màn hình minh hoạ)
Sử dụng lệnh sau đây để khôi phục tiến trình vừa dùng :
$ kill -s CONT <PID>
💡 CHÚ Ý
Ngay lập tức ta có thể thao tác Firefox
lại bình thường
Câu 4.3
Dùng lệnh
kill
để huỷ tiến trìnhFirefox
(Chụp màn hình minh hoạ)
Sử dụng lênh sau đây để thoát tiến trình ngay lập tức :
$ kill -s KILL <PID>
💡 CHÚ Ý
Tiến trình Firefox
ngay lập tức sẽ bị tắt đi.
5. Tập tin log
Câu 5.1
Tìm thông tin về người dùng, thời gian của lần đăng nhập sau cùng vào hệ thống (Chụp màn hình minh hoạ)
Sử dụng lệnh last
để hiển thị thông tin nhật ký đăng nhập trên máy:
💡 FACT
Nhưng ta có thể sử dụng lệnh last
kèm theo ống dẫn head -n -1
để hiển thị thời gian đăng nhập cuối cùng như sau :
Câu 5.2
Tạo một người dùng mới
Sử dụng lệnh adduser
hoặc useradd
để tạo người dùng mới (dùng tài khoản root) (Mình tạo tên newUser
)
Câu 5.3
Tìm thời gian người dùng ở
5.2
được tạo ra (Chụp màn hình minh hoạ)
Thông tin tạo người dùng nằm trong file /var/log/secure
, sử dụng lệnh cat
để in ra (dùng tài khoản root
)
💡 FACT
Ta nên kèm theo ống dẫn để tìm kiếm nhanh hơn như sau :