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
2. Quản trị với shell scripting
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ại
hostname -I: Hiển thị tất cả địa chỉIPv4mạng của host ()
whoami(Who Am I): hiển thị ra người dùng đang thao tác
df -H: Kiểm tra thông tin tất cả ổ cứng
ps -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 scriptcó têninfo.shthự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 scriptcó tênbackup.shthực hiện :
In ra ngày giờ hiện tại
Nén toàn bộ thư mục
/homethà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>.tarIn 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 :
3. Lên lịch công việc định kỳ với cron
💡 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
datemỗ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 filecrontabcrontab -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.3vào23:00 giờ ngày 10,20 và 30hằ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 -auxhoặcpgreptì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ổ
Firefoxhoặ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ủaFirefoxvà 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 :

