مشاوره و پشتیبانی #پایگاه داده #هوش تجاری

۵ مطلب با موضوع «سیستم‌عامل :: CentOS» ثبت شده است

دستورات کاربردی لینوکس برای DBAها

تو لینوکس همه چی به صورت فایل‌ه (دایرکتوری، فایل، دیوایس‌ها، پراسس‌ها و ...) خب از کجا بفهمیم یک فایل به صورت دایرکتوری هستش یعنی فایلی که فایلهای دیگه رو درون خودش آدرس‌دهی کرده برای اینکار از دستور زیر استفاده می‌کنیم:

[root@db01 ~]# ls -l
total 104
-rw-------. 1 root root  1808 May 17 11:06 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 May 17 11:11 Desktop
drwxr-xr-x. 2 root root  4096 May 17 11:11 Documents
drwxr-xr-x. 2 root root  4096 May 17 11:11 Downloads
-rw-r--r--. 1 root root 51955 May 17 11:06 install.log
-rw-r--r--. 1 root root 10033 May 17 11:04 install.log.syslog
drwxr-xr-x. 2 root root  4096 May 17 11:11 Music
drwxr-xr-x. 2 root root  4096 May 17 11:11 Pictures
drwxr-xr-x. 2 root root  4096 May 17 11:11 Public
drwxr-xr-x. 2 root root  4096 May 17 11:11 Templates
drwxr-xr-x. 2 root root  4096 May 17 11:11 Videos

تو اطلاعات permision‌ فایل اگه اولین حرف d بود یعنی دایرکتوری‌ه و اگه - یعنی فایل‌ه

ادامه مطلب...
۲۶ آبان ۹۵ ، ۱۰:۱۵ ۰ نظر
مهدی غفاری

اشتراک گذاری فایل‌های ویندوز در لینوکس

درسته ما یه دنیای بسیار شگفت انگیز تو لینوکس داریم اما برای خیلی از ماها ممکنه یه دلیل اجباری برای کار کردن با ویندوز باشه. برای مثال شما ممکنه از یک سرور لینوکس برای بک‌آپ‌گیری فایلهای ویندوز استفاده کنید.

این کار به راحتی با mount یک فولدر به اشتراک گذاشته شده ویندوزی در لینوکس امکان پذیره با اینکار شما به تمام فایلهای به اشتراک گذاشته شده از لینوکس خودتون دسترسی دارید و به راحتی می‌تونید از تمام دستورات لینوکس برای کار با این فایل‌ها استفاده کنید.

ماونت کردن فایلهای اشتراک گذاشته شده ویندوزی توسط فایل سیستم‌‌های مجازی cifs در کلاینت که در کرنل لینوکس به صورت درونی قرار گرفته‌اند انجام میشه
ابزار کمک‌کننده عملیات ماونت فولدرها توسط mount.cifs که بخشی از پکیج سامبا است انجام میشه

در این مثال از اسامی زیر استفاده شده:

  • اسم ماشین ویندوزی: winbox
  • اسم فولدر به اشتراک گذاشته شده: getme
  • نام‌کاربری: sushi
  • پسورد: yummy

ادامه مطلب...
۰۶ آبان ۹۵ ، ۲۳:۴۲ ۰ نظر
مهدی غفاری

ساخت مخزن آفلاین برای YUM

شاید نیاز داشته باشید برای نصب پکیج‌های پیشنیاز اوراکل از مخازن آفلاین درون DVD توزیع خودتون استفاده کنید و یا شایدم برای نصب پیش‌نیازهای اوراکل نیاز به نصب پکیج‌هایی داشته باشید و تو سایتتون امکان دسترسی ماشین به اینترنت رو نداشته باشید و یا اگه هم داشته باشید با مشکلاتی رو به رو باشید مثلاً استفاده از VPN یا Proxy که اگه توزیعتون اوراکل لینوکس هم باشه برای دسترسی به مخازن آنلاین اوراکل کارتون دو چندان میشه

تو این پست یک نگاه عملی بر مبنای این سناریو برای نصب پکیج‌های پیشنیاز اوراکل داریم

مرحله اول

اولین کارمون اینه که از DVD توزیع دایرکتوری مخازن رو در مسیری لوکال کپی کنیم

بعد از mount‌دیسک چه به صورت خودکار یا با دستور زیر

mount -t auto /dev/dvd /mnt

یا ماونت به صورت مستقیم از روی iso دیسک

mount -o loop /path/to/iso /mnt

ما باید دایرکتوری Packages رو توی مسیری لوکال که مجوزهای کافی برای خوندن و نوشتن رو داریم کپی کنیم:

[root@primary Desktop]# cp -R /mnt/Packages/ .
[root@primary Desktop]# mv Packages/ dvd

ادامه مطلب...
۳۰ شهریور ۹۵ ، ۱۲:۳۴ ۰ نظر
مهدی غفاری

تغییر اسم اینترفیس شبکه لینوکس از طریق udev

مثلاً فکر کنید سیستم‌عامل ما کارت شبکه رو با اسم wlan0 شناخته ولی ما میخوایم اسم رو به wl0 تغییر بدیم یا بعد از clone گیری از ماشین مجازی تو محیط‌های مجازی‌ساز ممکنه براتون این مشکل پیش بیاد که کارت شبکه‌های ماشین قدیمی تو فایلهای config باقی مونده باشه و سیستم‌عامل شما کارت شبکه‌های جدید رو با شماره‌های بعدی اسم گذاری کرده باشه این در حالیه که موقع راه‌اندازی کلاستر اوراکل اسم اینترفیس‌های شبکه باید یکسان باشند

خب بهترین روش برای عوض کردن اسم دیوایس‌ها از طریق udev ه (udev یه دیوایس منیجر برای کرنل لینوکس‌ه)

در ابتدای راه‌اندازی udev سخت‌افزارها رو میشناسه و براشون طبق استاندارد اسم گذاری میکنه و هر دیوایس رو به صورت یک فایل زیر dev/ قرار میده. udev به طور کلی جانشین devfs و hotplug شده البته هر کدوم از اینها میتونن دیوایس‌ها رو در دایرکتوری dev/ مدیریت کنند و تمام رفتارهای user space کرنل رو بسنجن تا وقتی یک دستگاه جدید add یا remove (به صورت hotplug یا به هر صورت دیگه‌ای) میشه firmware دستگاه رو لود کنند.

نام‌گذاری و مرتب‌سازی کارت‌های شبکه به طور غیر قابل پیش‌بینی اتفاق در هر reboot اتفاق میوفته در کرنل‌های جدید هم اسم‌گذاری کارت‌های شبکه به طور کامل تغییر کرد.

مرحله اول: پیدا کردن MAC آدرس کارت‌های شبکه

# ifconfig -a | grep -i --color hwaddr

مثالی از خروجی:

eth0      Link encap:Ethernet  HWaddr b8:ac:6f:65:31:e5
pan0      Link encap:Ethernet  HWaddr 4a:71:40:ed:5d:99
vmnet1    Link encap:Ethernet  HWaddr 00:50:56:c0:00:01
vmnet8    Link encap:Ethernet  HWaddr 00:50:56:c0:00:08
wlan0     Link encap:Ethernet  HWaddr 00:21:6a:ca:9b:10

MAC آدرس‌ها رو یادداشت کنید.

مرحله دوم: تغییر نام کارت شبکه

برای عوض کردن اسم eth0 به wan0 باید فایل 70-persistent-net.rules رو تو مسیر /etc/udev/rules.d/ پیدا و ویرایش کنید:

# vi /etc/udev/rules.d/70-persistent-net.rules

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

# PCI device 0x14e4:0x1680 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:ac:6f:65:31:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

تو این مثال ما میخوایم اسم eth0 رو به wan0 تغییر بدیم پس تو آخر خط "NAME="eth0 رو با "NAME="wan0 عوض می‌کنیم.

# PCI device 0x14e4:0x1680 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:ac:6f:65:31:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wan0"

حالا فایل رو save کنید و ماشین رو reboot کنید.

تنظیمات جدید رو ببینید:

# ifconfig -a
# ifconfig wan0
# ifconfig -a | less
# ip addr show

همچنین اگه بعد از reboot و طی بررسی‌هاتون دیدید که فایلی برای اینترفیستون توی مسیر /etc/sysconfig/network-scripts/ وجود نداره یک فایل با نام اینترفیس مثلاً ifcfg-eth0 با مقادیر زیر بسازید:

DEVICE=eth0
HWADDR=08:00:27:76:74:BD
TYPE=Ethernet
#UUID=540e14f4-907c-4bb9-9f59-e5e45c64414d
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp

منبع

۱۸ تیر ۹۵ ، ۰۰:۴۶ ۱ نظر
مهدی غفاری

نصب Linux-Dash روی CentOS 6

یکی از نرم‌افزارهای مانیتورینگ مورد علاقه مدیرها قطعاً Linux-Dash ه

https://github.com/afaqurk/linux-dash

این نرم‌افزار با PHP, Node.js, Python و Go هم نوشته شده و قطعاً‌ با هر وب‌سرویسی که از یکی از این زبان‌ها ساپورت کنه بدون مشکل کار میکنه

من نصب رو معمولاً روی CentOS با وب‌سرویس Apache انجام میدم ولی خود تیم توسعه‌دهنده Node.js رو پیشنهاد میکنن

یه نکته‌ای که تو نصب نرم‌افزار هستش اینه که باید فانکشن‌های exec, shell_exec, and escapeshellarg تو php فعال بشن

برای چک کردن این قضیه که این فانکشن‌ها فعال هستن یا نه:

<?php

// Show all information, defaults to INFO_ALL
//phpinfo();

if(function_exists('exec')) {
echo "exec is enabled <br>";
}
else{
echo "exec is disabled <br>";
}

if(function_exists('shell_exec')) {
echo "shell_exec is enabled <br>";
}

else{
echo "shell_exec is disabled <br>";
}

if(function_exists('escapeshellarg')) {
echo "escapeshellarg is enabled";
}

else{
echo "escapeshellarg is disabled";
}

?>

اگه فانکشن‌ها فعال بودند که کاری ندارید. اگه فانکشنها فعال نبودند توی فایل php.ini برید و 

disable_functions = 
suhosin.executor.func.blacklist = ""

رو به این صورت بذارید که فانکشنها از حالت disable در بیان

و برای اینکه بفهمید این فایل کجا قرار داره:

php -i |grep "php.ini"

اگه هم خواستید فقط برای یک دامین این فانکشن رو فعال کنید:

<VirtualHost 127.0.0.1>
………
<IfModule mod_php5.c>
php_admin_value suhosin.executor.func.blacklist = "shell_exec, exec, escapeshellarg"
</IfModule>
……
</VirtualHost>

برای گذاشتن پسورد روی داشبورد

توی مسیر /etc/httpd/conf/ برید و فایل httpd.conf رو باز کنید:

<Directory /var/www/html/mmon>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

همچنین

nano /var/www/html/mmon/.htaccess

و

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/www/html/mmon/.htpasswd
Require valid-user

و

htpasswd -c /var/www/html/mmon/.htpasswd admin

آخرش هم یکبار سرویس رو ریستارت کنید.

۰۱ فروردين ۹۵ ، ۱۱:۱۳ ۰ نظر
مهدی غفاری