لینوکس برای dba

فایلها و پوشه ها

فایل inittab

زمانی که پروسس init شروع به کار می کند فایل inittab را در مسیر /etc می خواند تا بداند دقیقا چه سرویسهایی را در چه در runlevelای اجرا کند  و در نهایت در runlevelای که این فایل به عنوان runlevel پیش فرض معرفی کرده است، توقف می کند و وارد runlevel های بعدی نمی شود.

*توضیحی در مورد runlevelها

زمانی که لینوکس شروع به کار می کند، در سطح های مختلفی از سرویس دهی قرار می گیرد که هر سطحی از آن را به یک شماره ای مشخص نسبت دادند به هر کدام از این سطح ها، runlevel می گویند:

0 Shut down
1 Single-user mode
2 Multi-user mode  without networking
3 Multi-user mode with networking
4 unused
5 Multiuser mode with networking and the X Window System
6 Reboot

 

runlvelها با دستورات زیر قابل تعیین هستند:

runlvel

who -r

همچنین با دستور init، می توان runlvel را تغییر داد:

init  5

ساختار خطوط در فایل inittab به شکل زیر می باشند:

Id:runlevel:action:process

id: همان label است.

runlevel: مشخص می کند که این پروسس در چه runlevelای اجرا شود.

action: به چه کیفیتی پروسس اجرا شود:

respawn ==> همیشه پروسس در حافظه در حال اجرا باشد

wait ==>تا پایان اجرای این پروسس، اینیت* منتظر بماند

once ==>پروسس تنها یکبار اجرا شود

off ==> هیچ گاه اجرا نگردد

process: چه پروسسی اجرا شود.

خط زیر بعد از نصب گرید برای اجرا شدن همیشگی و خودکار سرویس Oracle High Availability Services (OHAS) در فایل inittab قرار می گیرد:

h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null

خط زیر runlevelای که قرار است init در آن توقف کند، مشخص می شود.

id:5:initdefault:

فایل fstab

این فایل که در زیر دایرکتوری /etc قرار دارد، برای مونت کردن همیشگی پارتیشن به دایرکتوری به کار می رود ساختار این فایل به صورت زیر می باشد:

file-system  mount-point    type    options  dump    pass

file system : به uuid، label یا اسم دستگاه مورد نظر اشاره دارد.

mount point: پوشه ای که قرار است دیسک روی آن مونت شود را مشخص می کند.

type: نوع سیستم فایل را مشخص می کند(ext3, ext4, ..)

options: گزینه هایی از قبیل خواندنی/نوشتنی بودن دیسک، در این ستون قابل تعیین است.

dump: هنگام reset سرور، نیازی به بکاپ گیری با دامپ می باشد؟ که اغلب استفاده نمی شود.

pass:  هنگام استارت لینوکس، فایل سیستم دیسک بررسی شود یا خیر. این کار را به صورت دستی با fsck هم می شود انجام داد.

مثال:

/dev/mapper/disk05p1   /u05                   ext3    defaults        0 0

فایل limits.conf

این فایل محدودیتهایی از قبیل تعداد فایلهای باز، تعداد پروسس هر کاربر، تعداد لاگین هر کاربر و … را اعمال می کند. این فایل در مسیر /etc/security قرار دارد.

<domain>        <type>  <item>  <value>

domain می تواند نام کاربر، نام گروه(@dba) و یا wildcard(*) باشد.

type بر دو نوع soft و hard تقسیم می شود که soft مقدار پیش فرض را برای domain مورد نظر مشخص می کند و hard مقدار حداکثر را تعیین می کند.

item می تواند مقادیر زیادی بگیرد از قبیل

core حداکثر فضایی که می تواند برای فایل core استفاده شود، nproc تعداد پروسس ، maxlogins حداکثر تعداد لاگین یک کاربر، nice حداکثر میزان اولویت پروسسها، nofile تعداد فایلهای باز را مشخص می کنند.

oracle soft nofile 4096

oracle hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 65536

دستور ulimit برای تنظیم مقدار جاری این پارامترها کاربرد دارد. که سوییچ a مقادیر جاری همه itemها را نشان می دهد.

فایل hosts

برای تعیین اسم سرور از این فایل که در زیر /etc قرار دارد، استفاده می شود در واقع دفترچه تلفن سیستم می باشد.

127.0.0.1      localhost.localdomain    localhost

10.33.138.2     humdbs01

10.33.138.3     humvip01

120.1.138.2      humprv01

فایل .bash_profile

هر بار که وارد یوزری خاص می شویم، چند فایل اجرا می شوند که یکی از انها .bash_profile موجود در home directory می باشد با توجه به این ویژگی می توان متغیرهای محیطی را به جای تعریف در هر بار ورود به کاربر، در این فایلها تعریف کرد.

export ORACLE_SID=+ASM1

export JAVA_HOME=/usr/local/java

export ORACLE_BASE=/u01/oracle

export ORACLE_HOME=/u01/oracle/11g

export ORACLE_TERM=xterm

#export NLS_DATE_FORMAT=”DD-MON-YYYY HH24:MI:SS”

#export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS11=$ORACLE_HOME/nls/data

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

umask 022

فایل sysctl.conf

برای اعمال تغییر در رفتار کرنل، می توان پارامترهایی را در این فایل تغییر داد که معمولا از مهمترین پارامترها برای اوراکل، مربوط به shared memory می باشد که بهتر است به صورت زیر مقدارش محاسبه و اعمال شود:

Kernel.shmmax=(ram /2)*1024*1024*1024

Kernel.shmall= shmmax/ getconf PAGE_SIZE

برای دیدن همه پارامترهای مربوط به کرنل، از sysctl -a استفاده می شود و نیز از sysctl -p برای ذخیره و اعمال کردن تغییرات فایل /etc/sysctl.conf استفاده می شود.

فایل selinux

این فایل که در مسیر /etc/sysconfig/selinux قرار دارد برای اعمال محدودیتهای امنیتی سطح کرنل به کار می رود به عبارت دیگر مشخص می کند که کدام یک از کاربران و گروه ها، حق دسترسی به کدام فایلها و دستگاها را دارند.

در صورتی که بخواهیم سخت گیری امنیتی در درجه بالا انجام شود، باید SELINUX را برابر با enforcing قرار دهیم و برای غیرفعال کردن آن هم می توانیم از disabled استفاده کنیم.

دستور sestatus وضیعت جاری selinux را نشان می دهد. همچنین setenforce و getenforce از دیگر دستورات هستند.

setenforce 0  ==> permissive

setenforce 1  ==> enforcing

از اوراکل 11.2.0.3 گزینه enforcing هم پشتیبانی می شود.

فایل oratab

این فایل که در مسیر /etc قرار دارد اطلاعات oracle home و sid oracle مربوط به instance های موجود در سیستم(اعم از asm و بانک اطلاعاتی) را داراست:

<SID>:<ORACLE_HOME>:Y

usef11g:/u01/oracle/11g:Y

اگر بخواهیم autostart بانک را غیر فعال کنیم، می توانیم y را به n تبدیل کنیم.

زمانی که dbca را اجرا می کنیم، از طریق این فایل اسامی instanceها را پیدا می کند.

فایل  exports

برای تنظیم nfs در سرور مبدا، پوشه قابل اشتراک در فایل exports تعیین می شود و در سرور مقصد برای مونت دائمی این فضا، از fstab استفاده می شود:

مثال:

vi   /etc/exports

/u03/arch       *(rw,no_root_squash)

vi /etc/fstab

10.33.137.18:/u03/arch  /arch   nfs  rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0        0 0

فایل cpuinfo و meminfo

این دو فایل، زیر پوشه /proc قرار دارند و حاوی اطلاعاتی در مورد cpu و حافظه می باشند.

فایل messages

بسته به تنظیمات فایل پیکربندی وقایع نگار syslogd و یا rsyslog، اطلاعاتی در این فایل قرار می گیرند و در صورت فعال کردن audit trail در سطح os، می توان خروجی لاگها را به این فایل ارسال کرد.

فایل rc.local

این فایل در زیر پوشه /etc قرار دارد و init بعد از اجرای تمامی سرویسها در زمان استارت، دستورات درون این فایل را هم اجرا می کند.

فایل multipath.conf

برای دیدن همه مسیرهای ارتباطی بین یک storage و سرور به صورت واحد، از این فایل بهره گرفته می شود. این فایل در مسیر /etc قرار دارد و ساختاری شبیه به زیر دارد:

multipaths {

  multipath {
wwid “10017260006c00047”
alias disk01
}
}

پوشه proc

این پوشه تصویری از کرنل ارائه می کند که شامل اطلاعاتی در مورد پروسسها، فایلهای باز و .. می باشد. همچنین این پوشه فضایی از دیسک مصرف نمی کند و وجود مجازی دارد که به محض shutdown شدن سرور، اطلاعاتش پاک و در شروع مجدد، اطلاعاتش ایجاد می شود. این پوشه را به نوعی می توان با ویوهای v$ بانک اطلاعاتی مقایسه کرد.

پوشه /dev/shm

نوعی از فایل سیستم حافظه اصلی می باشد که محتویات آن هر بار پس از reboot شدن سرور از بین می رود قسمتی از محتویات shmfs به buffer cache درون sga اشاره دارد که باید بین پروسسهای مختلف به اشتراک گذاشته شوند اندازه هر فایل مربوط به sga که در درون این پوشه قرار دارد متناسب با اندازه granule  مشخص می شود که میزان granule  از طریق ویوی v$sgainfo قابل تعیین است.

زمانی که در سیستم چند instance اجرا شده باشد و memory target هم تعریف شده باشد، متناسب با هر کدام از این instanceها، فایل در /dev/shm خواهیم داشت که با حذف هر کدام از این فایلها، به اجرای instance مربوط به ان فایل، خاتمه خواهیم داد.

اندازه shmfs به طور پیش فرض برابر با نصف ram سیستم می باشد که در صورت لزوم می توان مقدار آن را تغییر داد.

mount -o remount,size=40G /dev/shm

در صورتی که اندازه share memory segment از اندازه پارامتر memory target کمتر باشد، با خطای زیر در هنگام استارت بانک مواجه خواهیم شد:

ORA-00845: MEMORY_TARGET not supported on this system

که می توان با تغییر اندازه shmfs و یا پارامتر مربوط به آن در کرنل، این مشکل را حل کرد.

دستورات

دستور cat

برای نمایش محتویات فایل به کار می رود.

سوییچهای پرکاربرد:

n : شماره خطوط با احتساب خطوط خالی.

b : شماره خطوط بدون احتساب خطوط خالی.

مثال:

cat -n usef_file

     1  hi

     2

     3  i am usef.

     4

     5  ….

دستورvi 

برای ویرایش فایلها به کار می رود که سه مد برای آن قابل تصور است:

command mode که معادل ESC+: می باشد و عمده کاربرد آن در ذخیره، خروج، اعمال قانونی خاص برای کل محتویات فایل می باشد.

insert mode با کلمه i و یا a می توانیم به این مد برویم که برای درج اطلاعات به کار می رود.

normal mode با فشردن کلید esc به تنهایی، به این مد خواهیم رفت.

مثال:

مد command:

:w  new_file ==> ایجاد یک فایل جدید با محتویات فایل جاری

:g/^$/d  => حذف همه خطوط خالی موجود در فایل

:set number ==>  تعیین شماره برای هر خطوط

w ==> ذخیره

wq, X ==> ذخیره و خروج

مد insert:

a,i ==> درج در فایل

مد normal:

d ==> حذف کارکتر جاری

r ==> جایگزینی کارکتر

shift + g ==> انتهای صفحه

دستور ls

برای نمایش فایلها و پوشه کاربرد دارد.

سوییچهای پرکاربرد:

a : نمایش همه فایلها حتی فایلهای مخفی.

i : نمایش شناسه فایل یا پوشه

l  :  نمایش مفصل تر

h : نمایش اندازه فایل با خوانایی بهتر

S :  مرتب سازی بر اساس اندازه فایلها

t: مرتب سازی بر اساس تاریخ

مثال:

ls -alihS

total 41M

6188246 -rw-r–r–.  1 usef  usef   25M Nov 10  2012 usef

6188247 -rw-r–r–.  1 usef  usef   13M Nov 10  2012 all

6188260 -rw-r–r–.  1 usef  usef  1.4M Nov 13  2012 ooo

ls -l /dev/oracleasm/disks

ls -l /dev |grep “8,  33”

دستور df

نمایش اماری در مورد فضای قابل استفاده و یا در حال استفاده سیستم

سوییچهای پرکاربرد:

h : نمایش حجم بصورت خوانا تر

مثال:

df -h

Filesystem         Size  Used Avail Use% Mounted on

/dev/cciss/c0d0p3  127G   75G   46G  63% /

tmpfs              4.9G  1.9G  3.0G  39% /dev/shm

/dev/cciss/c0d0p1  488M   83M  380M  18% /boot

/dev/loop0         962M   18M  896M   2% /u

دستور du

برای نمایش حجم مصرف شده توسط فایلها و یا پوشه ها کاربرد دارد.

سوییچهای پرکاربرد:

h : نمایش حجم بصورت خوانا تر

s : ارائه خروجی به صورت خلاصه

مثال:

du -sh /u01/oracle/

19G     /u01/oracle/

دستور less و more

برای نمایش صفحه به صفحه محتویات فایلها به کار می روند که دستور less کمی کاربردی تر است و با / امکان جستجو در آن وجود دارد و نیز با n می توانیم یافته بعدی را ببینیم.

دستور echo:

برای نمایش مقادیر متغیرها و یا چاپ مطلبی در خروجی کاربرد دارد.

سوییچهای پرکاربرد:

e :در صورتی که بخواهیم بین خروجی قوانینی را اعمال کنیم، می توانیم از -e استفاده کنیم.

مثال:

echo -e “$ORACLE_HOME\n$ORACLE_SID”

/u01/oracle/11

usef11g

echo $$ ==>نمایش پروسس نامبر جاری

دستور sar

ارائه امار از وضیعت جاری و گذشته cpu همچنین ram و…

نکات:

ستون iowait میزان درصدی که cpu در انتظار انجام i/o معطل مانده است.

ستون system نمایانگر میزان درصد مصرف cpu برای دستورات سطح کرنل می باشد.

سون user نمایانگر میزان درصد مصرف cpu برای دستورات سطح کاربر می باشد.

ستون idle درصد بیکار بودن cpu را مشخص می کند.

مثال:

sar 1 10 ==> برای ده بار، هر یک ثانیه یکبار اجرا می شود

دستور uptime:

مدت زمانی که سیستم down نشده است و load average سیستم در سه بازه زمانی مختلف چه بوده است؟

مثال:

uptime

 12:13:18 up 289 days,  2:23,  3 users,  load average: 19.09, 19.24, 19.29

دستورw, who

چه افرادی به سرور متصل هستند.

مثال:

who -u

root     pts/1        2016-06-16 11:59  old        29215 (10.32.176.2)

root     pts/2        2016-06-18 08:28   .         21904 (10.47.180.63)

دستور ifconfig:

نمایش مشخصات کارت شبکه

مثال:

ifconfig -a

eth4      Link encap:Ethernet  HWaddr 00:25:B4:A6:E8:02

          inet addr:10.32.136.4  Bcast:10.32.136.15  Mask:255.255.255.240

          inet6 addr: fe80::225:b3ff:fea6:e502/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:25848732 errors:0 dropped:3099 overruns:0 frame:0

          TX packets:6993932 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2973543727 (2.7 GiB)  TX bytes:6724385838 (6.2 GiB)

دستور pipe

برای ارسال خروجی یک دستور به دستور دیگر کاربرد دارد.

مثال:

cat f |less

دستور history

تاریخچه دستوراتی که قبلا اجرا شده اند.

نکته:

با متغیر محیطی $HISTSIZE می توانیم تعداد دستوری که باید نگهداری شوند را مشخص کنیم.

متغیر محیطی $HISTFILE ادرس فایل مربوط به history را مشخص می کند.

برای جستجو بین دستورات، می توانیم از ctrl+r استفاده کنیم.

دستور head

برای نمایش ده خط اول یک فایل به کار می رود.

سوییچهای پرکاربرد:

n : تعداد خطوطی که باید نمایش داده شوند.

مثال:

head -n 3 usef_file

دستور tail

نمایش ده خط آخر یک فایل

سوییچهای پرکاربرد:

n : تعداد خطوطی که باید نمایش داده شوند.

f : نمایش انلاین تغییرات

مثال:

tail -f /u01/oracle/diag/rdbms/usef11g/usef11g/trace/alert_usef11g.log

دستور netstat

اطلاعاتی از network connection را نمایش می دهد.

سوییچهای پرکاربرد:

p: نمایش نام و pid هر برنامه

t: منظور tcp می باشد.

l : نمایش سوکتهایی که در حال listening هستند

مثال:

netstat -nltp | grep 1521

tcp        0      0 :::1521                     :::*                        LISTEN      26145/tnslsnr

netstat -ptc

دستور cp

برای کپی فایل کاربرد دارد

سوییچهای پرکاربرد:

f: کپی در هر شرایطی

مثال:

cp a1*[!4]  /u01/test2/

cp a1*[!4-6]  /u01/test2/

cp a1*[4,6,5]  /u01/test2/

دستور scp

ارسال فایل به یک سرور راه دور

سوییچهای پرکاربرد:

P : تعیین پورت سرور مقصد

r: انتقال پوشه و محتویات آن

مثال:

scp a1*[4,6,5] HKM136004:/u01/test2/

دستور touch

ایجاد یا دستکاری یک فایل

سوییچهای پرکاربرد:

t : تغییر زمان اخرین اصلاح

-t è[[CC]YY]MMDDhhmm[.ss]

مثال:

touch my_file

touch -t 01120501 my_file

دستور grep

برای یافتن عبارتی در یک فایل به کار می رود.

سوییچهای پرکاربرد:

v : خطوطی که عبارت مشخص شده را دارند، نمایش داده نشوند.

مثال:

tail -f -n 1000 /u03/oracle/admin/humdb/bdump/alert_humstb1.log|grep “error”

ORA-00270: error creating archive log

ORA-00270: error creating archive log

ORA-00600: internal error code, arguments: [12333], [253], [1], [253], [], [], [], []

دستور chown

برای تعیین مالک فایلها به کار می رود.

سوییچهای پرکاربرد:

R : مالک همه فایلها و پوشه ها به صورت بازگشتی تغییر کند.

مثال:

chown oracle usef_file

chown oracle usef_file  usef_file2

chown oracle.oinstall  usef_file  usef_file2

chown 54325.54326  usef_file  usef_file2

chown -R oracle.oinstall /u01/

$chown -R mark:sales /path/to/directory

 

دستور chmod

اعطای مجوز به مالک، اعضای گروه و غریبه ها.

سوییچهای پرکاربرد:

R : به صورت بازگشتی به همه زیر مجموعه ها هم دستور را اعمال می کند.

مثال:

chmod  u+x   myfile

chmod u-x    myfile

chmod ug-x    myfile

chmod  o=r,g=r,u=rwx

100 ==> 4   ==> r–

دستور mv

برای تغییرنام و یا انتقال یک فایل کاربرد دارد.

سوییچهای پرکاربرد:

f : تحت هر شرایطی انتقال انجام شود.

u : اگر مبدا جدیدتر از مقصد بود، کپی انجام شود.

مثال:

mv usef_file usef_file2

دستور date

برای نمایش و یا تغییر تاریخ به کار می رود

مثال:

date -s “11/20/2003 12:48:00”

date –date=’@2147483647′

دستورtzselect

برای تغییر timezone به کار می رود.

TZ=’Asia/Tehran’; export TZ

دستور nmap

پورتهای باز را نمایش می دهد.

مثال:

nmap localhost

دستور kill

رسالت اصلی این دستور، پیام رسانی می باشد. برای دیدن همه سگنالهایی مربوط به kill از kill -l استفاده می شود.

سوییچهای پرکاربرد:

kill -1(SIGHUP): سیگنال یک سبب می شود تا یکبار پروسس فایل پیکربندی اش را بخواند معادل restart کردن یک سرویس می باشد.

kill -15(SIGTERM): پیامی را به پروسسی خاص مبنی بر خاتمه دادن به کارش می فرستد.

kill -9(SIGKILL): پیامی را به کرنل می فرستد تا پروسس مورد نظر را خاتمه دهد.

kill -19(SIGSTOP): برای متوقف کردن یک پروسس به کار می رود.

kill -18(SIGCONT):  برای ادامه دادن به پروسس متوقف شده، مورد استفاده قرار می گیرد.

killall: برای خاتمه دادن به همه پروسسهای مربوط به یک برنامه به کار می رود.

مثال:

killall -9 oracle

دستور rm

برای حذف یک فایل یا مجموعه ای از فایل و پوشه ها به کار می رود.

سوییچهای پرکاربرد:

f : حذف به صورت اجبار

i : حذف به صورت تعاملی

R,r: حذف به صورت بازگشتی(حذف پوشه به همراه تمامی زیر مجموعه ان)

مثال:

rm -rf /u01/archivelog/*

دستور top

نمایشی از وضیعت cpu و ram و …

سوییچهای پرکاربرد:

c : نمایش با جزییات بیشتر

k: برای خاتمه دادن به یک پروسس

دستور nice

برای تغییر سطح اولویت اجرای یک پروسس کاربرد دارد.

مثال:

renice +10 19759

nice –5 sleep 8888 &

دستور ssh

برای ارتباط با سرور دیگر مورد استفاده قرار می گیرد.

سوییچهای پرکاربرد:

p برای تغییر پورت کاربرد دارد.

l کاربر را مشخص می کند.

مثال:

ssh -p 2323 192.192.10.10

دستور ldd

کلیه فایلهای کتابخانه ای مرتبط به یک دستور را مشخص می کند.

مثال:

ldd date

دستور which و whereis

برای یافتن فایل مربوط به دستور، از which استفاده می شود و wheris اطلاعاتی را در مورد فایل مربوط به دستور، source و manualها ارائه می کند.

مثال:

whereis date

date: /bin/date /usr/share/man/man1/date.1.gz /usr/share/man/man1p/date.1p.gz

which date

/bin/date

دستور fdisk

برای نمایش پارتشنها و همچنین پارتیشن بندی دیسکها به کار می رود.

سوییچهای پرکاربرد:

l : برای نمایش لیست پارتیشنها به کار می رود.

مثال:

fdisk -l | grep ‘Disk /dev/sd’

fdisk -l | grep Disk

دستور mkfs

برای ایجاد فایل سیستم بر روی پارتیشن ها کاربرد دارند.

مثال:

mkfs.ext3  /dev/sdb1

mkfs -t ext3  /dev/sdb1

دستور mount

برای اتصال یک پارتیشن به پوشه ای خاص به کار می رود.

سوییچهای پرکاربرد:

a : یکبار فایل /etc/fstb را می خواند و در صورت لزوم همه فضاها را mount می کند.

مثال:

mount   /dev/mapper/disk01p1   /u01

دستور umount

سوییچهای پرکاربرد:

l: در صورتی که فایلهای دیسک در حال استفاده باشند، اجازه umount فضا داده نمی شود که با این سوییچ، این کار به صورت force انجام می شود. همچنین می توانیم از fuser و lsof هم به جای آن استفاده کنیم.

مثال:

umount  -l  /u02

دستور free

نمایش وضیعت حافظه و swap

سوییچهای پرکاربرد:

f : چند ثانیه یکبار

c : تعداد دفعات تکرار

g: نمایش حجم بر اساس گیگابایت

باید در نظر گرفت که مقدار free در سطر اول، با احتساب مقدار buffer و cache می باشد که در صورت لزوم و با درخواست پروسسهای دیگر به فضای جدید، امکان خالی شدن دارند، پس مقدار free در ردیف دوم باید ملاک مصرف حافظه باشد چون این دو عنصر در سط دوم لحاظ نشده اند.

***بعضا دیده می شود بدون اینکه حافظه به صورت کامل مصرف شده باشد، سیستم از swap استفاده کرده است که در این صورت باید به پارامتر swappiness کرنل رجوع و مشخص کرد که بعد از چند درصد مصرف حافظه، سیستم حق استفاده از swap را دارد.

مثال

free -g -s 111

دستور rpm

نصب، حذف و ارتقا بسته ها

سوییچهای پرکاربرد:

q: پرس و جو بین بسته های نصب شده

a : همه بسته ها

e:  حذف بسته

i: نصب بسته

V: بررسی صحت بسته

مثال:

rpm -qa |list

rpm -e  pkg_name

rpm -ivh  pkg_nam

rpm -V  pkg_name

rpm -Va

rpm  -ql  tar

rpm -qf /usr/bin/nmap

آیا حداقل بسته های مورد نیاز اوراکل، نصب هستند؟

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \

         gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh \

         libaio libaio-devel libgcc libstdc++- libstdc++-devel make \

         sysstat unixODBC unixODBC-devel

دستور yum

نصب، حذف و ارتقا بسته ها

سوییچهای پرکاربرد:

install : نصب بسته

y سوال نمی پرسد

مثال:

vi /etc/yum.repos.d/usef.repo

[localrepo]

name=localrepo

baseurl=file:///Packages

gpgcheck=0

enabled=1

نصب nmap:

yum clean all

yum repolist all

yum install nmap

دستور find

یافتن فایل و یا مجموعه ای از فایلها

سوییچهای پرکاربرد:

name: نام فایل مورد نظر

perm: مجوز فایل مورد نظر

empty: فایلهای بدون محتوا

amin : فایلی که کمتر یا بیشتر از چند دقیقه معین مورد دسترسی قرار گرفته است.

atim : فایلی که کمتر یا بیشتر از چند روز معین مورد دسترسی قرار گرفته است.

min : فایلی که کمتر یا بیشتر از چند دقیقه معین تغییر کرده است.

مثال:

find / -name passwd

find /  -name passwd  -exec cp {} /u01/sh/ \;

find /u01 -mtime -30

find /u01/oracle/11/ -perm 777 -type f

find /u01  -mtime -30  -name “*f” -exec rm “{}” \;

find /u01  -empty -exec ls -l “{}” \;

find /u05/|wc -l

find . -size +100000k

ASMCMD> find -t datafile +data *sys*

ASMCMD> find -t onlinelog +data *

ASMCMD> find -t controlfile + *

دستور crontab

برای تنظیم job در لینوکس می توان از atd ، crontab  و یا درصورت لزوم از anacron استفاده کرد. تنظیمات مربوط به کاربران مختلف ، در مسیر /var/spool/cron/ قرار می گیرند.

برای تنظیم ساعتی خاص، با ساختار زیر روبرو خواهیم بود:

 

# ┌───────────── min (0 – 59)

 # │ ┌────────────── hour (0 – 23)

 # │ │ ┌─────────────── day of month (1 – 31)

 # │ │ │ ┌──────────────── month (1 – 12)

 # │ │ │ │ ┌───────────────── day of week (0 – 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)

 # │ │ │ │ │

 # │ │ │ │ │

 # * * * * *  command to execute

سوییچهای پرکاربرد:

e : ویرایش

u : تعیین کاربر

l : نمایش تنظیمات

مثال:

crontab -e

50 19  * * *  su – oracle  /home/oracle/script/backup/run/GET-level1

دستور groupadd و groupdel

برای حذف و ایجاد گروه به کار می روند.

سوییچهای پرکاربرد:

g : در groupadd  برای تعیین id گروه به کار می رود.

مثال:

groupadd -g  501 oinstall

groupadd -g  502 dba

groupadd -g  503 oper

groupadd -g  504  asmadmin

groupadd -g  505  asmdba

groupadd -g  506  asmoper

groupdel  oinstall

دستور useradd  و userdel

سوییچهای پرکاربرد:

g: برای تعیین گروه اصلی کاربرد دارد.

G : برای تعیین گروه های فرعی به کار می روند.

مثال:

useradd  -u  501  -g oinstall  -G  asmadmin,asmdba,asmoper,dba    grid

useradd  -u  502 -g oinstall -G dba,oper,asmdba  oracle

دستور id

اطلاعاتی را در مورد کاربران و گروها ارائه می دهد.

   دستور xhost

اگر کاربری بخواهد برنامه ای را به صورت گرافیکی اجرا کند، باید از طریق دستور xhost مجوز استفاده از گرافیک را به ip آن کاربر داد:

xhost  localhost

localhost being added to access control list

برای اینکه کنترل دسترسی برای همه ipها غیرفعال شود و همه بتوانند از گرافیک سرور بهره بگیرند، می توان از + استفاده کرد.

xhost +

access control disabled, clients can connect from any host

از سرگیری کنترل دسترسی، با دستور xhost – ممکن خواهد شد.

xhost –

access control enabled, only authorized clients can connect

دستور iptables

نام فایروال محلی سیستم عامل لینوکس که در سطح کرنل کار می کند، iptables نام دارد از iptables برای مدیریت و فیلتر کردن بسته  ها بر روی IPv4 و IPv6 استفاده می شود. قوانین iptables بسته به نوع کاربرد در جداولfilter table ،  nat table وmangling table  و در زنجیرهایی از دستورات دسته بندی می شوند.

سوییچهای پرکاربرد:

A برای افزودن دستور به انتهای یک زنجیره از جدول قوانین استفاده می شود.

I  برای افزودن به مکان خاصی از زنجیره جدول قوانین استفاده می شود.

D برای حذف دستور از مکان خاصی از زنجیره جدول قوانین استفاده می شود.

R برای جایگزین کردن دستور جاری یا یک دستور در مکان خاصی از زنجیره جدول قوانین استفاده می شود.

p برای مشخص کردن نوع پروتکل مورد استفاده قرار می­گیرد.

t برای مشخص کردن جدول مورد استفاده قرار می­گیرد.

s یا source– برای مشخص کردن شماره ip  مبدا مورد استفاده قرار می­گیرد.

d یا destination– برای مشخص کردن ip  مقصد مورد استفاده قرار می­گیرد.

i یا in-interface– برای مشخص کردن کارت شبکه ورودی مورد استفاده قرار می­گیرد.

مثال:

iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT

برای غیرفعال کردن فایروال، از دستور زیر استفاده می شود:

service iptables stop

chkconfig iptables off

دستور ps

برای مشاهده لیست پروسسهای در حال اجرا، از دستور ps استفاده می شود و همچنین می توان بیشترین مصرف کننده منابع را با این دستور مشخص کرد.

سوییچهای پرکاربرد:

e همه پروسسها را در نظر می گیرد.

f نمایش پروسسها با جزییات بیشتر.

مثال:

ps -ef |grep pmon

oracle    1962     1  0 09:03 ?        00:00:04 ora_pmon_usef11g

amir      9299     1  0 Jun13 ?        00:01:35 ora_pmon_db11g

amir2    30486     1  0 Jun14 ?        00:01:13 ora_pmon_stn11g

amir1    30528     1  0 Jun14 ?        00:01:19 ora_pmon_stb11g

ps -e -o pmem,pid,user,tty,args | sort -n -k 1 -r | head èبیشترین مصرف حافظه توسط؟؟

دستور strings

یک فایل باینری را در حد امکان می خواند.

مثال

strings system01.dbf | grep _SYSSMU | cut -d $ -f 1 | sort -u

دستور lsof

اطلاعاتی را در مورد فایلهای باز ارائه می دهد.

سوییچهای پرکاربرد:

u می توان کاربر را با این سوییچ مشخص کرد.

مثال:

kill -9  `lsof -u oracle`

دستور vmstat

اطلاعاتی را در مورد وضیعت cpu، ram، i/o و …. ارائه می دهد.

نکات:

wa میزان انتظار cpu برای i/o را نشان می دهد.

id میزان idle بودن cpu را نشان می دهد.

مثال

vmstat  1 222

دستور uname

برای نمایش مشخصات کرنل، نام هاست و… مورد استفاده قرار می گیرد.

سوییچهای پرکاربرد:

a نمایش همه اطلاعات

r نمایش نسخه کرنل

مثال:

uname -a

دستور mkswap، swapon، swapoff

برای افزودن، فعالسازی و حذف swap، می توان از این دستورات بهره گرفت.

مثال:

dd if=/dev/zero of=/u01/swap1  bs=1M count=1000

chmod 600 /u01/swap1

mkswap  /u01/swap1

swapon  /u01/swap1

swapon -s

swapoff  /u01/swap1

دستور sysctl

برای کار با پارامترهای کرنل، از این دستور استفاده می شود.

سوییچهای پرکاربرد:

a نمایش همه پارامترها

p خواندن فایل sysctl.conf و اعمال تغییرات

w تغییر پارامتر کرنل و نوشتن در sysctl.conf

مثال:

sysctl -a |grep swap

sysctl -w kernel.sem=”250 32000 100 128″

echo 250 32000 100 128 > /proc/sys/kernel/sem

دستور ipcs

برای نمایش میزان حافظه و سمافورهای تخصیص یافته به کار می رود.

کاربرد

با سوییچ m می توان میزان shared memory مصرف شده در سیستم را مشاهده کرد با دانستن این نکته، می توان در مورد استارت instance جدید در سیستم اقدام کرد.

ipcs -m

همچنین برای نمایش محدودیتهای هر بخش(سمافور و shared memory)، می توان این دستور را با سوییچهای زیر اجرا کرد:

m نمایش shared_memory

s به معنی سمافور می باشد.

l همان محدودیتهاست

ipcs -lms

 دستور chkconfig

این دستور برای نمایش، حذف و رجیستر سرویسها از/به runlevelهای مختلف به کار می رود:

chkconfig –list

chkconfig –add dbora

chkconfig –level 3 sendmail on

chkconfig –level 3 sendmail off

chkconfig –del sendmail

 دستور gzip، bip و bzip2

برای فشرده سازی فایلها به کار می روند.

سوییچهای پرکاربرد:

d برای خارج کردن یک فایل از حالت zip به کار می رود.

مثال:

gzip data

gzip -d data.gz

دستور tar

برای بکاپ گیری به کار می رود.

سوییچهای پرکاربرد:

f :فایل ; c ایجاد ; v انجام کار به صورت پر سروصدا ; x استخراج

مثال:

tar  cvf  new  .

tar  xvf  new  ./.bash_profile ==> بازیابی بش پروفایل

دستور cpio

برای بکاپ گیری به کار می رود.

سوییچهای پرکاربرد:

o بکاپ گیری ; t تست ; v ارائه توضیحات بیشتر ; i برگرداندن اطلاعات از backup

مثال

find . |cpio  -o  >new

cpio  -iv  < new  .bash_profile ==> بازیابی بش پروفایل

دستور fsck

برای بررسی و رفع اشکال فایل سیستم ها به کار می رود.

نکات

ابتدا دیسک را از mount خارج می کنیم و سپس از این دستور استفاده می کنیم.

y سوال نپرس

مثال:

fsck -yf  /dev/mapper/disk01p1

دستور last

تاریخچه ای از کاربرانی که به سیستم وصل شده اند.

دستور multipath 

سوییچهای پرکاربرد:

ll نمایش وضیعت مسیرهای مختلف

v0 تایید پیکربندی انجام شده در multipath.conf

F حذف همه multipath deviceهای بلااستفاده

دانلود فایل pdf مربوط به این مطلب

 

 

 

3 دیدگاه در زمینه “لینوکس برای dba”

    1. سلام و ارادت
      مفاهیم شبکه نسبت به مفاهیم لینوکس برای dba از اهمیت کمتری برخوردارند و با دانش کم نسبت به مفاهیم شبکه، معمولا کار dba پیش می رود ولی برای راحتی در مطالعات و همچنین محیط کار، دانشی در حد netwotk+ و ccna برای dba کافیست(البته بنظر بنده).

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.