Tải bản đầy đủ (.pdf) (20 trang)

Shell script, quản lý người dùng, log, quản lý tiến trình, dịch vụ cron

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (819.01 KB, 20 trang )

Shell script,
quản lý người dùng, log,
quản lý tiến trình, dịch vụ cron
Âu Bửu Long – Lê Minh Triết
Phiên bản 2013
Mảng trong shell script
•Tập hợp các giá trị dữ liệu được lưu trữ qua một tên chung
•Giống như biến: không cần khai báo trước khi sử dụng
•Được tự động tạo ra qua lần dùng đầu tiên
•Giá trị có thể rỗng
•Có thể gán nhiều giá trị thông qua 1 câu lệnh
•Có thể thực hiện các phép toán và xử lý chuỗi trên nó
•Khai báo thông qua lần gán đầu tiên:
<array_name>[xx]=<value>
Ví dụ - Mảng …
Newarr=(giatri1 giatri2 giatri3)
echo ${Newarr[1]}
Newarr[2]=giatri2moi
echo Newarr[2]
Newarr[4]=15
Newarr[6]=5
Newarr[7]=`expr ${Newarr[4]} + ${Newarr[6]}`
echo ${Newarr[@]:2:2}
Bài tập thực hành – Mảng
•Viết file script ~/<tên mình>.sh
nhận 1 tham số là số nguyên dương n,
thực hiện khởi tạo mảng n+1 phần tử chứa
các số nguyên từ 0 - n.
Lệnh find - Tìm kiếm
• Tìm một file trong một cây
• Cấu trúc:


find [path] [expression]
• Các tùy chọn:
–name
-print
–type
-mtime
–exec
–ok
Lệnh find - Tìm kiếm…
• Các tham số con cho tham số type
b Block special
c Character special
d Directory
f Regular file
l Symbolic link
• Tham số mtime:
-mtime số_ngày
VD:
-mtime 5
-mtime +5
-mtime -5
Lệnh find - Tìm kiếm…
•Tham số ok và exec: thực hiện một
công việc nào đó trên kết quả tìm
kiếm.
•VD:
find . –name temp –type f –ok rm {} \;
find / –name “*a*” –type d –exec ls -l {} \;
Bài tập thực hành – Tìm kiếm
•Viết đoạn script tìm các file theo một đuôi

nào đó và copy chúng sang một thư mục
cho trước. Nếu trùng lại thì file được copy
là file mới nhất. Nếu thư mục đích chưa
được tạo thì sẽ tự tạo.
Quản lý người dùng
•Người dùng có thể thuộc về nhiều nhóm,
trong đó có 1 nhóm chính.
•Mỗi người dùng và nhóm có 1 ID.
•Các file lưu trữ thông tin người dùng:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
Quản lý người dùng
• Các lệnh quản lý
user:
• useradd
• usermod
• userdel
• Passwd
• chpasswd
• Các lệnh quản lý
nhóm:
• groupadd
• groupmod
• groupdel
Các lệnh cơ bản về mạng
•ifconfig
•nslookup
•traceroute

•ping
•route
Bài tập - Các lệnh cơ bản về mạng:
• Viết các script thực hiện các yêu cầu sau:
• Thông báo tất cả các trạng thái liên quan đến hoạt động của
mạng hiện tại: tình trạng gateway, DNS, IP máy,
• Cho trước một file text chứa một danh sách các IP (trong
cùng mạng với máy hiện tại) mỗi IP nằm trên 1 dòng, Mỗi lần
chạy script sẽ kiểm tra đường gateway hiện tại có ra được
internet? Nếu không ra được internet thì sẽ tự động đổi cấu
hình theo đường gateway mới là 1 trong các IP đã cho.
Hệ thống log trong linux
•Ghi lại nhật ký về các sự kiện trong
hệ thống:
•Các sự kiện lúc boot.
•Các lỗi của hệ thống.
•Chứng thực, xác thực.
•Các dịch vụ khác
Hệ thống log trong linux
•Các file log chính được đặt trong thư mục
/var/log/
•dmesg
•boot
•kern.log
•message
•udev
•auth.log
Bài tập thực hành - xử lý log
•Viết đoạn script kiểm tra xem 10 ip nào đã
đăng nhập không thành công nhiều lần

nhất vào hệ thống, sử dụng các lệnh xử lý
như cut, tr, grep, sort vào là các file log
Quản lý tiến trình
• Các tiến trình trong hệ thống được tổ chức theo dạng
cây.
• Quá trình khởi động và khởi tạo các tiến trình:
• init:
Được khởi tạo bởi kernel lúc vừa khởi động
Cha của mọi tiến trình khác trong hệ thống.
• getty:
Được khởi tạo bởi init
Quản lý terminal.
• login: Quản lý đặng nhập
• shell: Sau khi đăng nhập hoàn tất
Quản lý tiến trình
•Một số lệnh liên quan:
• ps: xem trạng thái của các tiến trình
• top: xem thông tin và độ ưu tiên xử lý
của các tiến trình
• pstree: xem cây các tiến trình
• kill: tắt một tiến trình thông qua ID
• killall: tắt một tiến trình thông qua tên
Dịch vụ cron
• Dùng chạy định kỳ một công việc nào đó
• Hệ thống cron gồm các thư mục trong đó ta có thể
đặt script cần chạy tương ứng:
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

• Các thư mục và file cấu hình của cron được tự động
giám sát định kỳ mỗi phút và tự cập nhật quá trình
chạy.
Dịch vụ cron
• Ta có thể chỉ định quá trình chạy cụ thể qua file cấu
hình: /etc/crontab
• Cấu trúc của mỗi dòng:
m(minute) h(hour) d(day) dom(day of month)
mon(month) dow(day of week) user command
Có thể thay các giá trị thời gian bằng wildcard *
• VD:
30 0 * * * root rm /home/someuser/tmp/*
Bài tập
•Kết hợp dịch vụ cron với một file script để
kiểm tra hoạt động của mạng định kỳ.

×