2012-07-02 54 views
5

Tôi đang cố gắng tạo một số báo cáo lập kế hoạch dung lượng và một trong số các yêu cầu để có thông tin về mức sử dụng bộ nhớ đối với một vài máy chủ Unix.Ghi dữ liệu VMStat vào tập tin

Bây giờ kiến ​​thức về Unix của tôi rất thấp. Tôi thường chỉ cần đăng nhập và chạy một vài tập lệnh.

Nhưng đối với báo cáo này, tôi cần phải thu thập dữ liệu VMStat và tạo báo cáo dựa trên dữ liệu tuần trước đó được chia nhỏ theo giờ, trung bình dữ liệu Vmstat được lấy 10 giây một lần.

Vì vậy, câu hỏi đầu tiên: là đăng nhập VMStat theo mặc định và nếu có thì vị trí nào trên máy chủ là đầu ra dữ liệu?

Nếu không làm cách nào tôi có thể thiết lập điều này?

Cảm ơn

Trả lời

9

vmstat là lệnh bạn chạy.

Để tạo một tuần số liệu thống kê bộ nhớ ảo cách nhau ra mười chu kỳ thứ hai (ít người cuối cùng) là 60.479 10 khoảng thứ hai

Vì vậy, các lệnh bạn muốn là:

nohup vmstat 10 604879 > myvmstatfile.dat & 

chí này tạo một tệp rất lớn myvmstatfile.dat

EDIT: RobKielty (& sẽ đặt công việc này ở chế độ nền, nohup sẽ ngăn tác vụ bị treo g up khi bạn đăng xuất của shell lệnh. Nếu bạn chạy lệnh này, bạn nên theo dõi phân vùng đĩa mà tệp này đang được ghi vào. Sử dụng df -h /path/to/directory/where/outputfile/resides để giám sát việc sử dụng dung lượng đĩa.)

Tôi không biết bạn cần làm gì với dữ liệu, vì vậy tôi không thể giúp bạn ở đó.

Tạo một mục (crontab -e) như thế này

0 0 * * 0 /path/to/my/vmstat_script.sh 

File vmstat_script.sh sẽ chứa các lệnh bash kịch bản tiếp theo.

#!/bin/bash 
# vmstat_script.sh 
vmstat 10 604879 > myvmstatfile.dat 
mv myvmstatfile.dat myvmstatfile.dat.`date +%Y-%m-%d` 

này sẽ tạo một tập tin mỗi tuần với một cái tên như myvmstatfile.dat.2012-07-01

+0

@ Rob Kielty - Tại sao cái nhìn này với tôi rằng nó sẽ kéo dài trong 70, thay vì 7 ngày (604.879 × 10 ÷ 60 ÷ 60 ÷ 24 = 70)? Tôi đang thiếu gì? –

+0

@ MuhamedHuseinbašić Tôi sẽ chia cho 10 thay vì nhân với 10 –

+0

@RobKielty - Tôi vẫn không hiểu. Dòng này: vmstat 10 604879 nói để xuất một dòng mỗi 10 giây và dừng sau 604879 dòng. Vì vậy, nếu cho 1 dòng chúng ta cần 10 giây, cho 604879 dòng chúng ta cần 604879 lần 10 giây. Điều đó có nghĩa là tập lệnh sẽ chạy trong 6048790 giây, tức là xấp xỉ. bằng 70 ngày. Sai lầm của tôi ở đây là gì? –

Các vấn đề liên quan