Lệnh Tiện Ích Và Quản Lý Tiến Trình

Tác giả admin+, T.Ba 14, 2011, 06:46:21 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Lệnh Tiện Ích Và Quản Lý Tiến Trình


I. Lệnh tiện ích

1. Tạo lệnh alias:

Cú pháp: alias <tên lệnh alias> <lệnh>

Ví dụ: Để tạo lệnh dir tương tự khi gọi lệnh ls –l thì gõ lệnh như sau: alias dir ls –l.

2. Lệnh tìm kiếm grep:

Cú pháp: grep [-viw] <mẫu> <file(s)>
Lệnh này sẽ thực hiện tìm kiếm mẫu trong một hay nhiều file. Mỗi dòng của file có chứa mẫu sẽ được hiển thị ra thiết bị đầu cuối. Trong đó tham số -v có nghĩa là sẽ tìm những dòng không có mẫu, -w có nghĩa là tìm kiếm một từ trọn vẹn, -i là để bỏ qua sự phân biệt giữa ký tự hoa và ký tự thường.


3. Lệnh du:
Cú pháp: du [-ask] <filename>
Lệnh này sẽ tính tổng dung lượng sử dụng. Với tham số -a sẽ tính tổng dung lượng các file của mỗi thư mục và file. –s chỉ tính tổng cộng dung lượng. –k sẽ hiển thị dung lượng các file KB.

II. Quản lý tiến trình
A. Tiến trình:

a. Các khái niệm:
Hệ thống Redhat Linux là một kho chứa nhiều loại chương trình khác nhau như daemons, các ứng dụng người dùng, các tiện ích. Khi chạy bất kỳ chương trình nào sẽ được load lên bộ nhớ của máy tính. Lúc đó nó trở thành một tiến trình đang chạy trên máy tính. Một tiến trình tận dụng CUP, bộ nhớ ảo và bộ nhớ vật lý và địa chỉ của máy tính để thực hiện một việc gì đó hữu ích.

Có 3 lại tiến trình trên Linux:
+ Tiến trình tương tác (interactin\ve processes) là tiến trình khởi động và quản lý bởi shell, kể cả tiến trình forceground hay background.
+ Tiến trình theo lô ( Batch processes) tiến trình không gắn liền với bàn điều khiển (terminal) và được nằm trong hàng đợi để lần lượt thực hiện.
+ Tiến trình ẩn trên bộ nhớ (Dawmon processes) là các tiến trình chạy ẩn bên dưới hệ thống (background).

Các tiến trính này được khởi tạo – tự động – sau khi hệ thống khởi động. Đa số các chương trình server cho các dịch vụ chạy theo phương thức này. Đây là các chương trình này được gọi lên bộ nhớ, đợi (thụ động) các yêu cầu từ chương trình khách (client) để trả lời các socket xác định, tên của nó thường được kết thúc bằng ký tự "d".

Mỗi tiến trình thực hiện nếu sinh ra nhiều tiến trình con được gọi là tiến trình cha. Khi tiến trình cha bị dừng thì các tiến trình con cũng bị dừng theo.

b. Tiến trình tiền cảnh:
Khi thực hiện một chương trình từ dấu nhắc shell ($ hoặc #), chương trình này sẽ được thực hiện và không xuất hiện dấu nhắc cho đến khi thực hiện xong chương trình. Do đó, không thể thực hiện các công việc khác trong khi chương trình này đang thực hiện. Chương trình họat động như vậy biến thành tiến trình tiền cảnh.

c. Các tiến trình hậu cảnh:
Tiến trình hậu cảnh là tiến trình sinh ra với tiến trình cha. Khi một chương trình chiếm thời gian lâu có thể cho phép chúng ta chạy ngầm định bên dưới và tiếp tuịc thưc hiện các công việc khác. Để tiến trình chạy dưới chế độ hậu cảnh thì dùng thêm dấu & và sau lệnh thưc hiện chương trình.

d. Tại sao phải quản lý triến trình:
Do tiến trình sử dụng các tài nguyên của hệ thống, nó là một phần quan trọng trong việc thực thi của hệ thống. Càng có nhiều tiến trình chạy, càng cần có nhiều tài nguyên. Vì thế quản lý tiến trình là một kỹ năng quản trị quan trọng.

B. Giám sát và quản lý tiến trình:
a. Xem thông tin trạng thái tiến trình bằng lệnh ps:
Cú pháp: ps
Các thông tin sẽ được hiển thị theo dạng bản.
Trong đó bao gồm các thông tin sau đây:
* USER or UID chủ tiến trình.
* PID ID của tiến trình.
* TTY thiết bị đầu cuối hoạt động cùng với tiến trình.
* STAT trạng thái của tiến trình. R dang chạy hay bắt đầu chạy. I ide S đang ngủ, Z zombie, D disk wait, P page wait, W wapped out, N lowered, priority by nice, T terminated, <execution priority by duperuser, và ...
* TIME tổng thời gian CYP của tiến trình.
* COMMAND lệnh để thực thi.

b. Lệnh jobs:
Cú pháp: jobs
Lệnh này cho phép hiển thị các tiến trình chạy background hoặc hiện tại đang bị treo.

c. Lệnh bg:
Lệnh này cho phép một tiến trình đang chạy vào chạy hậu cảnh.
Thí dụ: đang chạy lệnh
du –a /lsort –rn > /tmp/du.sorted
Do số lượng file trong hệ thống mà có thể sẽ phải chờ một khỏang thời gian. Trong trường hợp này, có thể treo dòng lệnh trên bằng cách gõ Ctrl-Z và bg để chuyển cả dòng lệnh trên vào chạy nền mà lấy shell để thực hiện công việc khác.

d. Lệnh fg:
Cú pháp: fg <job-number>
Lệnh này cho phép đưa một tiến trình đang chạy hậu cảnh vào chạy tiền cảnh. Nếu chạy lệnh này không tham số thì nó sẽ đưa ra chương trình mà đã đưa vào chạy hậu cảnh sau cùng ra. Nếu có quá nhiều lệnh đang chạy hậu cảnh thì có thể dùng lệnh jobs để tìm kiếm jobs-number.

e. Lệnh pstree:
Cú pháp: pstree –n –p
Lệnh này sẽ hiển thị các tiến trình đang chạy theo dạng cây.
Hủy một tiến trình bằng lệnh kill
Cú pháp: kill -9 <PID>

C. Chương trình lập lịch crontab:
a. Cron:
Linux cho phép lập kế hoạch có tính chất chu kỳ thông qua lệnh cron (chronograph) và các file crontabs. Chương trình deamon (cron) được kích hoạt ngay từ đầu khởi động của hệ thống. Khi khởi động, cron xem có các tiến trình nào trong hàng đợi nạp vào bởi lệnh at, sau đó xem xét các file crontabs xem có tiến trình nào cần phải thực hiện hay không rồi "đi ngủ". Cron sẽ thức dậy mỗi phút để kiểm tra xem có phải thực hiện tiến trình nào không. Mọi người dùng trong hệ thống đầu có thể lập lịch các tiến trình sẽ thực hiện bởi cron.
Để chạy dịch vụ cron, phải cài đặt package vixie-cron RPM. Để xác định package đã được cài đặt hay chưa dùng lệnh rpm –qvixie-cron.
Xem trạng thái của dịch vụ: /sbin/service cron status.

b. Cấu hình các tác vụ cron:
File cấu hình cho cron, /etc/crontab, có nội dung:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 * * * root run-parts /etc/cron.monthly
4 dòng đầu tiên là những biến sử dụng để cấu hình môi trường mà các tác vụ cron chạy.
Nếu biến mail MAILTO được rán là rỗng ("") thì sẽ không gủi mail.
File crontab là file văn bản có cú pháp như sau:
Phút giờ ngày_của_tháng tháng_của_năm ngày_của_tuần lệnh
Mỗi dòng chứa thời gian và lệnh. Lệnh được cron sẽ thực hiện tại thời điểm ghi ở trước trên cùng dòng. Năm cột đầu tiên là thời gian có thể dùng dấu * có nghĩa là "với mọi". Các giá trị có thể cho các trường hợp là:
* Phút: 0 – 59
* Giờ: 0 – 23
* Ngày của tháng: 1- 31
* Tháng của năm: 1 – 12
* Ngày của tuần: 0 – 6 với 0 là chủ nhật
Chú ý: Dấu – để nối một dãy số nguyên.
Ví dụ: 1 – 4 có nghĩa là 1,2.3,4. Danh sách số không liên tiếp có thể dùng dấu, . dấu /<số nguyên> để chỉ ra số lần thực thi trong một số nguyên đơn vi thời gian.

c. Điền khiển truy cập cron:
File /etc/cron.allow và etc/cron.deny để giới hạn danh sách người dùng truy cập cron.
Nếu có file cron.allow tồn tại thì chỉ có những user nằm trong danh sách này được sử dụng cron, file cron.deny được bỏ qua.
Nếu không tồn tại có file cron.allow thì tất cả những user nằm trong danh sách các file cron,deny không được sử dụng cron.

d. Chạy và ngừng chạy dịch vụ:
+ Để chạy dịch vụ ta dừng lệnh service crond start.
+ Để ngừng dịch vụ ta dùng lệnh service crond stop.