Artarad_linux

دستورات کاربردی در سیستم عامل های لینوکس – بخش دوم

در مقاله دستورات کاربردی در سیستم عامل های لینوکس  بخش اول دستورات ارائه گردیدند، در ادامه بخش دوم دستورات بررسی می شوند.

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’
ادامه دارد …
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *