دستورات کاربردی در سیستم عامل های لینوکس – بخش دوم
در مقاله دستورات کاربردی در سیستم عامل های لینوکس بخش اول دستورات ارائه گردیدند، در ادامه بخش دوم دستورات بررسی می شوند.
Find Big Files
جستجو و نمایش ۲۰ عدد از بزرگترین فایلها (بصورت Recursively) در این دایرکتوری.
[root@oelpri test]# find /home/ -type f -print0 | xargs -0 du -h | sort -hr | head -20
با استفاده از دستور بالا میتوان لیست فایلهای موردنظر را بصورت sort شده بهمراه نمایش حجم مشاهده کرد، این تنظیمات میتواند بصورت دلخواه باتوجه به نیاز تغییر کند.
Perform Action for Every File in a Directory
در اسکریپتهای زیر دو روش برای انجام عملیات روی هریک از فایلهای یک دایرکتوری را مشاهده میکنید.
#!/bin/bash
for FILE in `ls /tmp/`; do
# Do something with the file name.
echo $FILE;
done
Or this.
for FILE in $( ls /tmp/ ); do
echo $FILE
done
Perform Action for Every Line in a File
در اسکریپت زیر روش انجام عملیات روی هریک از خطهای یک فایل را مشاهده میکنید.
#!/bin/bash
while read LINE; do
# Do something with the line.
echo $LINE;
done < /tmp/myfile.txt
Alias
برای تعیین نام مستعار(Alias) که یک نام میانبر (Shortcut) برای دستورات طولانی است، به روش زیر عمل میکنیم.
[root@oelpri test]# alias name=’command’
برای مثال اگر شما نیاز به دسترسی Sudo برای یک دستور خاص داشته باشید، میتوانید آنرا بصورت نام مستعار استفاده کنید تا نیازی به تایپ دستور وجود نداشته باشد.
[root@oelpri test]# alias myscript=’sudo -u oracle /path/to/myscript’
Remove DOS CR/LFs (^M)
حذف DOS style CR/LF characters (^M) از فایلهای UNIX با استفاده از:
[root@oelpri test]# sed -e ‘s/^M$//’ filename > tempfile
فایل Temp جدید ایجاد شده باید کاراکترهای ^M را حذف کند.
در صورت امکان بهتر است از دستورات dos2unix و unix2dosاستفاده شود.
Run Commands As Oracle User From Root
اسکریپت زیر نشان میدهد که چگونه میتوان تعدادی از دستورات را به عنوان کاربر”oracle” با کاربر “root” اجرا کرد.
#!/bin/ksh
su – oracle <<EOF
ORACLE_SID=LIN1; export ORACLE_SID
rman catalog=rman/rman@w2k1 target=/ cmdfile=my_cmdfile log=my_logfile append
EOF
اغلب لازم است کارهای تعریف شده در Cron توسط کاربر Root بجای کاربر Oracle اجرا شود.
Compress Files
بمنظور صرفهجویی در فضا شما میتوانید فایلها را همانند archived redo logs فشرده کنید.شما میتوانید از هریک از دستورات gzip یا compress استفاده کنید. دستور gzip یک کپی فشرده شده از فایل اصلی با پسوند .gz ایجاد و فایل اصلی را حذف میکند و دستور gunzip این عملیات را معکوس میکند.
[root@oelpri test]# gzip myfile
[root@oelpri test]# gunzip myfile.gz
دستور compress یک کپی فشرده از فایل اصلی با پسوند .z ایجاد میکند (حذف فایل اصلی) و دستور uncompress این عملیات را معکوس میکند.
[root@oelpri test]# compress myfile
[root@oelpri test]# uncompress myfile
General Performance
Vmstat
گزارش آماری از وضعیت حافظه مجازی.
[root@oelpri test]# vmstat 5 3
procs ———–memory———- —swap– —–io—- –system– —–cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
۱ ۰ ۰ ۳۱۹۶۶۸۰ ۸۵۵۵۶ ۳۰۶۹۳۶ ۰ ۰ ۴ ۱ ۷ ۸ ۰ ۰ ۱۰۰ ۰۰
۱ ۰ ۰ ۳۱۹۶۶۶۴ ۸۵۵۵۶ ۳۰۶۹۳۶ ۰ ۰ ۰ ۰ ۱۴ ۲۰ ۰ ۰ ۱۰۰ ۰۰
۱ ۰ ۰ ۳۱۹۶۶۶۴ ۸۵۵۶۴ ۳۰۶۹۳۶ ۰ ۰ ۰ ۲ ۱۵ ۱۸ ۰ ۰ ۱۰۰ ۰۰
Free
گزارش استفاده از وضعیت فعلی حافظه. خط “-/+ buffers/cache:” نشان دهنده حافظه واقعی استفاده شده و حافظه آزاد است، بهمراه نادیده گرفتن حافظه پنهان فایل سیستم لینوکس.
[root@oelpri test]# free
total used free shared buffers cached
Mem: ۳۷۸۳۱۶۴ ۵۸۶۴۹۲ ۳۱۹۶۶۷۲ ۵۳۲ ۸۵۶۲۰ ۳۰۶۹۳۶
-/+ buffers/cache: ۱۹۳۹۳۶ ۳۵۸۹۲۲۸
Swap: ۸۱۹۱۹۹۶ ۰ ۸۱۹۱۹۹۶
Iostat
گزارش وضعیت I/O .
[root@oelpri test]# iostat
Linux 4.1.12-37.4.1.el6uek.x86_64 (oelpri) ۰۲/۰۱/۲۰۱۹ _x86_64_ (۲ CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
۰٫۰۱ ۰٫۰۰ ۰٫۰۶ ۰٫۰۲ ۰٫۰۰ ۹۹٫۹۱
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda ۰٫۸۰ ۱۶٫۱۳ ۵٫۵۷ ۷۵۸۹۸۸ ۲۶۲۰۴۸
scd0 ۰٫۰۰ ۰٫۰۱ ۰٫۰۰ ۲۶۴ ۰
CPU Usage
Sar
در سیستمهای لینوکسی sar احتملاً یکی از سادهترین و همهکارهترین ابزارهای تهیه گزارش از وضعیت سیستم است که شامل CPU, memory, disk and network activity میباشد.این ابزار بصورت اتوماتیک اطلاعات مربوط به فعالیتهای سیستم را جمعآوری میکند. نصب آن بصورت زیر است:
[root@oelpri test]# yum install sysstat
فرم دستور sar بصورت زیر است:
[root@oelpri test]# sar [options] [interval [count]]
پارامتر option تعیین کننده نوع گزارشات میباشد.
پارمتر interval نشان دهنده فاصله زمانی (ثانیه) بین هر گزارش است.
پارامتر count نشان دهنده تعداد نمونههایی است که قبل از اتمام دستور نمایش داده میشود.اگر Count از دستور حذف شود نمونهگیری بصورت نامحدود ادامه خواهد یافت.
همانطور که در صفحه man دستورsar مشاهده میکنید، تعداد زیادی از تنظیمات وجود دارد. در زیر نکات خوبی را میتوانید مشاهده کنید.
• CPU:
o Basic CPU: sar [-u] [interval [count]]
o Load Average: sar -q [interval [count]]
• Memory:
o Kernel Paging: sar -B [interval [count]]
o Unused Memory: sar -r [interval [count]]
o Swap Space: sar -S [interval [count]]
• Disk:
o Average Disk I/O: sar -b [interval [count]]
o Disk I/O: sar -dp [interval [count]]
• Network:
o Network: sar -n DEV [interval [count]]
o Network Errors: sar -n EDEV [interval [count]]
در اینجا یک مثال از خروجی گزارش CPU وجود دارد.
[root@oelpri test]# sar -u 1 5
Linux 4.1.12-37.4.1.el6uek.x86_64 (oelpri) ۰۲/۰۱/۲۰۱۹ _x86_64_
[root@oelpri test]# sar -u 1 5
Linux 4.1.12-37.4.1.el6uek.x86_64 (oelpri) ۰۲/۰۱/۲۰۱۹ _x86_64_ (۲ CPU)
۰۸:۰۶:۴۹ PM CPU %user %nice %system %iowait %steal %idle
۰۸:۰۶:۵۰ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۵۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۵۰
۰۸:۰۶:۵۱ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۱۰۰٫۰۰
۰۸:۰۶:۵۲ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۵۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۵۰
۰۸:۰۶:۵۳ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۵۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۵۰
۰۸:۰۶:۵۴ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۱۰۰٫۰۰
Average: all ۰٫۰۰ ۰٫۰۰ ۰٫۳۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۷۰
Mpstat
گزارش مربوط به پردازنده.
[root@oelpri test]# mpstat 10 2
Linux 4.1.12-37.4.1.el6uek.x86_64 (oelpri) ۰۲/۰۱/۲۰۱۹ _x86_64_ (۲ CPU)
۰۸:۱۱:۳۲ PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
۰۸:۱۱:۴۲ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۱۰۰٫۰۰
۰۸:۱۱:۵۲ PM all ۰٫۰۰ ۰٫۰۰ ۰٫۰۵ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۹۵
Average: all ۰٫۰۰ ۰٫۰۰ ۰٫۰۳ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۰٫۰۰ ۹۹٫۹۷
Top
نمایش:
[root@oelpri test]# top
top – 20:14:28 up 13:18, ۱ user, load average: 0.00, 0.01, 0.05
Tasks: ۹۷ total, ۱ running, ۹۶ sleeping, ۰ stopped, ۰ zombie
Cpu(s): ۰٫۰%us, ۰٫۲%sy, ۰٫۰%ni, 99.8%id, ۰٫۰%wa, ۰٫۰%hi, ۰٫۰%si, ۰٫۰%st
Mem: ۳۷۸۳۱۶۴k total, ۵۸۷۴۳۲k used, ۳۱۹۵۷۳۲k free, ۸۵۹۲۰k buffers
Swap: ۸۱۹۱۹۹۶k total, ۰k used, ۸۱۹۱۹۹۶k free, ۳۰۷۰۵۶k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
۹ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۳ ۰٫۰ ۰:۰۱٫۳۶ rcuos/0
۳۳۹۷ root ۲۰ ۰ ۱۸۳۷۶ ۲۰۶۸ ۱۷۶۰ S ۰٫۳ ۰٫۱ ۰:۱۱٫۱۳ irqbalance
۱۰۲۱۱ root ۲۰ ۰ ۱۵۰۹۶ ۱۹۷۶ ۱۷۰۸ R ۰٫۳ ۰٫۱ ۰:۰۰٫۰۱ top
۱ root ۲۰ ۰ ۱۹۴۱۶ ۲۳۵۶ ۲۰۴۰ S ۰٫۰ ۰٫۱ ۰:۰۱٫۲۲ init
۲ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kthreadd
۳ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۱۰ ksoftirqd/0
۵ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kworker/0:0H
۷ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۲٫۹۷ rcu_sched
۸ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ rcu_bh
۱۰ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ rcuob/0
۱۱ root RT ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۳ migration/0
۱۲ root RT ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۳۶ watchdog/0
۱۳ root RT ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۳۴ watchdog/1
۱۴ root RT ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۳ migration/1
۱۵ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ ksoftirqd/1
۱۷ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kworker/1:0H
۱۸ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۴٫۱۶ rcuos/1
۱۹ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ rcuob/1
۲۰ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ khelper
۲۱ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kdevtmpfs
۲۲ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ netns
۲۳ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ perf
۲۴ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۱ khungtaskd
۲۵ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ writeback
۲۶ root ۲۵ ۵ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ ksmd
۲۷ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ crypto
۲۸ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kintegrityd
۲۹ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ bioset
۳۰ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kblockd
۳۱ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ ata_sff
۳۲ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ md
۳۵ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kswapd0
۳۶ root ۲۰ ۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ fsnotify_mark
۴۸ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kthrotld
۵۰ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ acpi_thermal_pm
۵۲ root ۰ -۲۰ ۰ ۰ ۰ S ۰٫۰ ۰٫۰ ۰:۰۰٫۰۰ kpsmoused
با تطبیق ستونهای PID و SPID در V$PROCESS View میتوان اطلاعات بیشتری ازعملیات بدست آورد.
SQL> SELECT a.username,
a.osuser,
a.program,
spid,
sid,
a.serial#
FROM v$session a,
v$process b
WHERE a.paddr = b.addr
AND spid = ‘&pid’; ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰
Enter value for pid: 1589
old ۱۰: AND spid = ‘&pid’
new ۱۰: AND spid = ‘1589’
ادامه دارد …
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.