فایلها و پوشه ها
فایل 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
192.168.138.2 humdbs01
192.168.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
192.168.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
برای زمانبندی در سطح لینوکس می توان از سرویسهایی چون atd، crontab و یا در صورت لزوم از anacron استفاده کرد که در اینجا سرویس crontab را به دلیل کاربرد زیادی که برای یک مدیر بانک اطلاعاتی دارد، مورد بررسی قرار خواهیم داد.
برای کار با این سرویس، از دستور crontab استفاده می شود که پروسس crond مسئولیت اجرای وظایف این دستور را بر عهده دارد که به صورت خودکار راه اندازی می شود و با اطلاعاتی که در فایلهایی چون /var/spool/crond/* ذخیره شده است(در این مسیر فایلهایی به اسم کاربران وجود دارد که job هر کدام در ان تنظیم شده است)، وظایفش را انجام می دهد. این پروسس که معمولا تحت نظر init اجرا می شود در هر دقیقه یکبار وظیفه دارد تا عملیات محوله را مورد بررسی و در صورت لزوم انجام دهد.
دستور crontab سوییچهای مختلفی دارد که از پرکاربردترین انها می توان به موارد زیر اشاره کرد:
crontab –e ویرایش
crontab -l نمایش محتویات
crontab –u oracle –e ویرایش برای کاربر اوراکل
crontab –r حذف کامل محتویات کرونتب
در فایل crontab خطوط به صورت مستقل و جدا از هم معنی پیدا می کنند و هر خط می تواند بیانگر یک job باشد که برای تنظیم ان، باید در ابتدا با ساختار ان اشنا بود که در این قسمت امده است.
# ┌───────────── 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
در ادامه مثالهایی را در این مورد مشاهده خواهید کرد.
مثال 1: در خط زیر ابتدا به کاربر اوراکل سوییچ می شود و سپس در ساعت 19:50 دقیقه، فایل level1 اجرا خواهد شد:
50 19 * * * su – oracle /home/oracle/level1
مثال 2: فایل level1 هر نیم ساعت یکبار اجرا می شود:
00,30 * * * * /home/oracle/level1
مثال 3: فایل level1 در ساعتهای 9، 10 و 11 اجرا می شود:
00 09,10,11 * * * /root/level1
مثال 4: دوشنبه و چهارشنبه ساعت دو بعدازظهر فایل level1 اجرا خواهد شد:
* 2 * * 1,3 /root/level1
البته برای تنظیم زمان به صورت بازه ای می توان از خط تیره(-) استفاده کرد(دوشنبه تا چهارشنبه):
* 2 * * 1-3 /root/level1
مثال 5: فایل a هر سه دقیقه یکبار اجرا می شود:
*/3 * * * * /u01/a
مثال 6: فایل a هر چهار روز یکبار اجرا می شود:
* * */4 * * /u01/a
مثال 7: اجرای چند اسکریپت با هم:
* * * * * /scripts/script.sh; /scripts/scrit2.sh
-به سه طریق زیر می توان بررسی کرد که ایا پروسس crond در حال اجرا می باشد یا نه؟
ps -eaf|grep crond
service crond status
ll /var/run/crond.pid
-برای مانیتوینگ سرویس crontab می توان از دستور زیر استفاده کرد:
tail -f /var/log/cron
– همانطور که در ابتدا بیان شد، در صورتی که کاربری jobای را تعریف کرده باشد، اطلاعات ان در مسیر /var/spool/cron قرار خواهد گرفت و همچنین برای تنظیم جاب، می توان از فایل/etc/crontab و یا فایلهای موجود در پوشه های زیر هم استفاده کرد.
/etc/cron.hourly/,
/etc/cron.daily/,
/etc/cron.weekly/,
/etc/cron.monthly/
همچنین پروسس crond، فایلهای موجود در زیر پوشه /etc/cron.d/ را هم مورد بررسی قرار می دهد و در صورت لزوم، انها را اجرا خواهد کرد.
دستور 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های بلااستفاده
مقالات شما بسیار عالی هستند
بسیار عالی. آیا برای مباحث شبکه که یک dba باید بدونه هم pdf یا منبعی سراغ دارید؟
عالی بود
متشکر
خیلی گلی عزیز جون