مشکلات رایج log در سیستم عامل های سرور

در بحث مشکلات سیستم عامل های سرور ما اول باید ادرس دقیق فایل های path را پیدا کنیم.

لیست فایل های logبه ترتیب زیر میباشد:

فایل های دایرکت ادمین:

/var/log/directadmin/error.log
/var/log/directadmin/errortaskq.log
/var/log/directadmin/system.log
/var/log/directadmin/security.log

فایل های apache:

/var/log/httpd/error_log
/var/log/httpd/access_log
/var/log/httpd/suexec_log
/var/log/httpd/fpexec_log
/var/log/httpd/domains/domain.com.error.log
/var/log/httpd/domains/domain.com.log
/var/log/messages (generic errors)

فایل های Proftpd:

/var/log/proftpd/access.log
/var/log/proftpd/auth.log
/var/log/messages (generic errors)

فایل های PureFTPd:

/var/log/pureftpd.log

فایل های Dovecotو vm-pop3d:

/var/log/maillog
/var/log/messages

فایل های named (bind):

/var/log/messages

فایل های exim:

/var/log/exim/mainlog
/var/log/exim/paniclog
/var/log/exim/processlog
/var/log/exim/rejectlog

(بر روی freeBSD,exim دقیقاروبروی اسم فایل ها نوشته شده)

فایل هایmysqld:

redhat:

/var/lib/mysql/server.hostname.com.err

فایل های FreeBSD و Debian:

/usr/local/mysql/data/server.hostname.com.err

فایل هایcrond:

/var/log/cron

برای دیدن فایل های logکد زیر را اجرا کنید:

less /var/log/filename

در لوکیشنی که شما میخواهید ببینید:/var/log/filename/

اگر که فایل های log شما طولانیست از فرمان tailزیر استفاده کنید:

tail -n 30 /var/log/filename

شماره ۳۰ جاییست که شما نیاز به دیدن دارید.


یکسان نبودن ای پی دستگاه با فایل های گواهی:

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

The ip of this machine () does not match the ip in the license file

وقتی که شما تلاش میکنید که دایرکت ادمین را اجرا کنید سپس تنظیمات internet_devدر تنظیمات directadmin.confباهم چک خواهند شد و به خطا برخورد خواهند کرد,کد زیر را تایپ کنید:

/sbin/ifconfig

برای دیدن دستگاه های که ای پی شما بر روی آنها فعال هستند,اسم دستگاه های رایج:eth0, eth0:1, eth1, venet0:0هستند.
به یاد داشته باشید که شما میتونید مشخص کنید دستگاه های فرعی شما ای پی های متفاوتی را بگیرند.زمانی که اسم دستگاه خود را پیدا کردید مسیر زیر را ادیت کنید: /usr/local/directadmin/conf/directadmin.conf
تنظیمات را عوض یا اضافه کنید:

ethernet_dev=eth0

شما در قسمت eth0باید اسم دستگاه اینترنتی که از آن استفاده میکنید را قرار دهید.


پردازش task.queueشروع به کار نمیکند:

۱)/usr/local/directadmin/data/task.queueرا چک کنید در آنجا باید در هر دقیقه حذف شود.اگر فایل وجود داشت,محتویات آنرا چک کنید,اگر بیشتر از ۱ یا ۲خط وجود داشت پس dataskqشما اجرا نمیشود.

۲)مسیر /var/log/cron (/var/log/syslog on Debian)را چک کنید.چک کنید اگر dataskgدر هر دقیقه در حال اجرا نبود آنرا اجرا کنید.

chmod 644 /etc/cron.d/directadmin_cron
/sbin/service crond restart

۳)مطمعن شوید که cronدر حال اجراست(منظور از cronدر freeBSDمیباشد):

ps ax | grep cron

۴)سعی کنید از مسیر زیر /sbin/service crond restart ,cronرا ریستارت کنید.مسیر /var/log/cron and /var/log/را برای مشاهده پیام های احتمالی با /etc/cron.d/directadmin_cron file (/etc/crontab on FreeBSD)چک کنید.اگر شما crondرا ندارید کد زیر را تایپ کنید:

yum -y install vixie-cron cronie
service crond start
chkconfig crond on

اگر با تمامی روش های بالا بازم task.queueشروع به پردازش نکرد,سعی کنید آنرا با روش دستی اجرا کنید:

/usr/local/directadmin/dataskq d

مصرف بالای دیسک یکی ازکاربر ها:

در زمان انتشار بروزرسانی دایرکت ادمین ۱٫۳۹٫۴قابلیت جدیدی منتشر شد که به شما اجاره میدهد با دایرکت ادمین مصرف دیسک کاربران را مشاهده کنید,مشابه به خروجی که ما در روش زیر برایتان نوشته ایم.

اگر فکر میکنید مصرف دیسک بیشتر از آن چیزی هست که باید باشد,یا میخواهید درجریان باشید چه مقادیر مصرف دیسک از دایرکت ادمین شما می آید,کد زیر را وارد کنید:

cd /usr/local/directadmin
echo "action=tally&value=username&type=user" >> data/task.queue
./dataskq d800

در کد جایی که usernameمشخص شده با اسم کاربری که میخواهید را قرار دهید.


نحوه ساخت مسیر home:

ممکن است برایتان پیش امده باشد,که مسیر homeرا اتفاقی پاک کرده باشید,در حالت معمول این اتفاق خوبی نیست زیرا هممه اطلاعات شما آنجا ذخیره شده است,شما نیاز دارید که تمام مسیر را دوباره بسازید و همینطور مقداری فایل های دایرکت ادمین برای اجرا کردن:

فایل های tmp directoryرا بسازید تا بتوانید دوباره در دایرکت ادمین وارد شوید:

mkdir -p /home/tmp
chmod 1777 /home/tmp

۲)مسیر /home/username directories and subdirectories:را بسازید:

cd /home
vi make_dirs.sh

برای ورود به حالت insert mode کلید i را فشار دهید و کد زیر را وارد کنید:

#!/bin/sh
for i in `ls /usr/local/directadmin/data/users`; do
{
for d in `cat /usr/local/directadmin/data/users/${i}/domains.list`; do
{
mkdir -p /home/${i}/domains/${d}/public_html/cgi-bin
mkdir -p /home/${i}/domains/${d}/private_html
mkdir -p /home/${i}/domains/${d}/public_ftp
mkdir -p /home/${i}/domains/${d}/stats
mkdir -p /home/${i}/domains/${d}/logs
};
done;
mkdir -p /home/${i}/backups
chown -R $i:$i /home/${i}
chmod -R 755 /home/${i}
};
done;
exit 0;

برای خروج از حالت insert mode کلید crtl-cرا باهم فشار دهید,و برای ذخیره کلید shift-zرا دوبار فشار دهید و خارج شوید.زمانی که فایل ذخیره شد,کد زیر را وارد کنید:

chmod 755 make_dirs.sh
./make_dirs.sh

طریقه بازیابی یک پشتیبانی بزرگ:

اگر شما فایل پشتیبانی دارید که برای بازگردانی دایرکت ادمین بزرگ است که
پردازش بازرگردانی آن برایش مشکل است,پس tar.gzمیتواند هم اندازه بشود تا مقداری از اعضای آن را
حذف کند تا پردازش بازیابی به روش معمول انجام بگیرد,و اعضای حذف شده آن میتواند به روش دستی دوباره بازرگردانی شود.روشی که ما آن را انجام میدهید,برداشتن مسیر دامین ها از فایل های
پشتیبانی است(به طور مثال که این مسیر باعث مصرف زیادی شده است)

cd /home/admin/admin_backups
mv user.admin.username.tar.gz user.admin.username.backup.tar.gz
mkdir temp
cd temp
tar xvzf ../user.admin.username.backup.tar.gz backup
tar cvzf ../user.admin.username.tar.gz backup
chown admin:admin ../user.admin.username.tar.gz

این روش مسیر دامین ها را از پشتیبانی حذف خواهد کرد.اگر در حین استخراج از پشتیبانی با خطایی مواجه شدید,در این حالت یا فایل شما اسیب دیده و یا پشتیبانی که تهیه کرده اید آن قدر بزرگ است که سیستم عامل شما از پس آن برنمی آید.

فایل را به حالت معمول در دایرکت ادمین بازیابی کنید.زمانی که تمام شد,اطلاعات از /home/username/domainsگم خواهد شد,حالا آن را به صورت دستی استخراج کنید:

cd /home/username
tar xvzf /home/admin/admin_backups/user.admin.username.backup.tar.gz domains
chown username:username domains

دوباره چک کنید که همه چیز به درستی کار میکند و مراحل به پایان رسیده است.


پر شدن /var:

اگر شما پارتیشن /varرا دارید و آن
ارتیشن آنقدر کوچک است که سریع پر میشود,در صورتی که میخواهید اطلاعات ذخیره شده در /varرا به یک پارتیشن دیگر انتقال دهید,کد زیر را اجرا کنید:

cd /var
du | sort -n

کد وارد شده شما یک نگاه کلی به تمامی مسیر هایی که بیشترین فضا را دارند میدهد.مسیری که بیشترین استفاده از دیسک را میکند در زیر لیست نشان داده خواهد شد.یکی از رایجترین دلیل mysqlاست.(/var/lib/mysqlدر redhat)

برای جابه جا کردن آن مسیر به یک پارتیشن دیگر کد زیر را وارد کنید:

cd /home
mkdir mysql
chown mysql:mysql mysql
cd mysql

perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
/sbin/service mysqld stop

cp -Rp /var/lib/mysql/* .
cd /var/lib
mv mysql mysql_old
ln -s /home/mysql ./mysql

/sbin/service mysqld start
perl -pi -e 's/mysqld=OFF/mysqld=ON/' /usr/local/directadmin/data/admin/services.status

#once satisfied that mysqld is running and functioning correctly, remove the old data:

rm -rf mysql_old

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

/usr/local/directadmin/conf/mysql.conf

اگر با خطایی مشابه زیر مواجه شدید:

[Warning] Can't create test file /home/mysql/server.lower-test

بعد جابه کردن فایل ها به /home,پردازش داده شده به فایل mariadb.serviceیا mysqld.serviceرا چک کنید و به دنبال همچین لاینی بگردید:

ProtectHome=true

ومقدار وارد شده true را به falseتعغییر بدهید.

امتیاز ما
برای امتیاز به این پست کلیک کنید
[کل: 0 میانگین: 0]

Leave a Reply