بایگانی برای دسته "Linux"

ایجاد بلک لیست در لینوکس

بدون نظر

ابتدا ipset رو نصب میکنید.

centos:
yum install ipset

ubuntu:
apt-get install ipset

بعد از نصب این دستورات را وارد میکنید.

ipset create blacklist hash:ip hashsize 4096
iptables -I INPUT -m set --match-set blacklist src -j DROP
iptables -I FORWARD -m set --match-set blacklist src -j DROP

حالا برای اضافه کردن ip به لیست از این دستور استفاده کنید. به جای 192.168.1.100 باید ip مورد نظر شما که می خواهید به بلک لیست اضافه شود را جایگزین کنید
ipset add blacklist 192.168.1.100

برای خارج کردن از بلک لیست از این دستور استفاده کنید
ipset del blacklist 192.168.1.100


جایگزینی متغیر

بدون نظر

شرح مشکل:

دو سرور IBSng وجود داره که خودکار هر روز صبح از دیتابیس PostgreSQL بک آپ گرفته میشه و به سرور دوم IBSng منتقل میشه و اونجا Restore میشه. سرور اول IBSng برای تحویل خودکار به WHMCS متصل شده و از اونجایی که ماژول از XMLRPC برای ارتباط استفاده میکنه دیگه نمیشه از ip لوکال استفاده کرد و باید در تنظیمات سرور IBSng آی پی اصلی سرور وارد بشه و مشکل از همینجا شروع میشه چونکه ip موجود در دیتابیس سرور اول به سرور دوم منتقل میشه و بعد ازعملیات Restore به علت اینکه ip موجود در دیتابیس IBSng سرور دوم با ip سرورش مغایرت داره سرویس IBSng اجرا نمیشه.

راه حل:

برای اینکه سرویس IBSng سرور دوم اجرا بشه باید ip موجود در دیتابیس به ip سرور دوم تغییر پیدا کنه و این کار باید قبل از مرحله Restore انجام بشه.
از bash لینوکس استفاده میکنیم و ip سرور اول رو در فایل دیتابیس PostgreSQL پیدا میکنیم و اون رو با ip سرور دوم جایگزین میکنیم.
برای اینکار از دستور sed استفاده میکنیم.
ابتدا یک فایل باز میکنیم.
nano rep.sh

و داخلش این دستورات را وارد میکنیم

#!/bin/bash
var1='127.0.0.1'
var2='192.168.1.1'

sed -i -e 's/'"$var1"'/'"$var2"'/g' IBSng.sql

در اینجا درون فایل IBSng.sql مقدار متغیر var2 در مقدار var1 جایگزین میشه .

از این دستور نیز می توانید استفاده کنید
replace x z — file1.txt
مقدار x با z جایگزین میشه


بستن همه ی پورت ها به جز چند پورت خاص در centos

بدون نظر

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

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

به جای 22 یا 80  پورت مورد نظر خودتان را جایگزین کنید.

بعد با این دستور بقیه پورت ها را مسدود می کنید.

iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

اگه پینگ سرور قطع شد با این دستور میتونید بازش کنید

iptables -A INPUT -p icmp -j ACCEPT

 

و بعد تنظیمات را ذخیره میکنید.

 

service iptables save

 


backup و restore از iptable

بدون نظر

برای گرفتن backup از این دستور استفاده کنید.

iptables-save >/path

به جای /path مسیر دلخواه خودتون را برای ذخیره فایل جایگزین کنید.

برای restore از این دستور استفاده کنید.

iptables-restore </path

path/ باید همان مسیری باشد که در مرحله backup مشخص کردید.

 


پیدا کردن فایل های حجیم در CentoOS

بدون نظر

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

 

 

find path -size +50M -exec ls -lh {} \; | awk '{print $5"  -  "$9}'

 

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

این دستور فایل های بزرگتراز 50MB را نشون میده در صورت نیاز میتونید مقدار حجم رو تغییر بدید.

مثال: میخاید مسیر var/ را جستجو کنید

[root ~]# find /var -size +50M -exec ls -lh {} \; | awk '{print $5"  -  "$9}'

160M  -  /var/spool/mail/root
52M  -  /var/lib/pgsql/data/base/26505/26854
59M  -  /var/lib/pgsql/data/base/26505/26923
64M  -  /var/lib/pgsql/data/base/26505/26649

 


ریست کردن پسورد vmware esxi 5

بدون نظر

روش اول:

دوباره vmware رو روی سرور نصب کنید که خود vmware هم همینو پیشنهاد داده.

روش دوم:

این روش رسمی نیست و مسئولیت  هرگونه از دست رفتن اطلاعات به عهده خودتون هست.

اول باید دسترسی KVM از دیتاسنتر بگیرید بعد توی یک vps با kvm به سرورتون وصل میشید.

این فایل iso هم که لینوکس mint هست توی vps دانلود میکنید

دانلود

اگر این لینک خراب شد یه موقع از جای دیگه خواستید دانلود کنید بهتره mint 14 باشه چون توی mint 16 برنامه gparted بطور پبشفرض نصب نیست که برای نصب هم باید به اینترنت وصل باشه که اگه اینترنت mint رو وصل کردید میتونید از همون mint 16 هم استفاده کنید.

بعد توی kvm فایل iso که دانلود کردید اضافه میکنید و بعد سرور رو ریبوت میکنید تا از iso که قرار دادید بوت بشه.

بعد صبر کنید تا mint بوت بشه و محیطش باز یشه

1

پایین روی mneu کلیک کنید و برنامه terminal رو باز کنید و این رو تایپ کنید و اینتر بزنید تا دسترسی روت بگیرید.

sudo su

 

2

 

3

 

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

4

 

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

از این تعداد پارتیشن فقط به پارتیشن 5 نیاز داریم و اگه از esxi5.1 استفاده میکنید پارتیشن 6 هم لازم هست.

پس در اینجا با توجه به هاردی که توی این سرور هست دو پارتیشن sda5 و sda6 مورد نیاز هست. این اسم ممکنه توی سرور شما فرق داشته باشه با توجه به اینکه توی کدوم هارد vmware نصب شده باشه هارد معمولی باشه یا ssd ممکنه اسم فرق کنه مثل sdd5 /sdb5/ sdc5 …

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

gparted رو ببندید و به ترمینال برگردید.

این دو دستور رو در ترمینال وارد کنید

mkdir /mnt/esxi_disk

mount /dev/sda5 /mnt/esxi_disk/

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

cd /mnt/esxi_disk
ls

باید شبیه به عکس زیر باشه

6

از بین این فایل ها ما فقط به state.tgz نیاز داریم. که داخل خود این فایل یه فایل فشرده دیگه به اسم local.tgz هست که توی این فایل به پوشه به اسم etc قرار داره که داخلش باید یک فایل به اسم shadow  رو ویرایش کنید. برای اینکار مراحل زیر رو به ترتیب انجام بدید.

tar xzf state.tgz
tar xzf local.tgz

دستور دومی رو که زدید ممکنه یه ارور بده که مهم نیست.

7

حالا وارد پوشه etc باید بشید

cd etc

nano shadow

شبیه به عکس زیر باز میشه

9

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

root:password:

فقط همینارو باید پاک کنید بقیه چیزا که سمت راستش هست پاک نکنید

بعد از پاک کردین باید شبیه به عکس زیر باشه.

10

ctrl+x بزنید و بعدش y تا فایل ذخیره بشه.

حالا همونطوری که فایل ها رو از اول تا آخر از حالت فشرده در آوردیم  تا به فایل shadow برسیم  حالا باید از اخر تا اول فایل ها رو فشرده کنیم این مراحل رو انجام میدیم.

cd /mnt/esxi_disk
tar czf local.tgz etc
tar czf state.tgz local.tgz
rm -r local.tgz etc

 

11

مراحل تمام شد حالا باید ریبوت کنید و iso رو بردارید تا vmware بوت بشه و بدون پسورد میتونید وارد vmware بشید.

توجه مهم:  اگر esxi 5.1 دارید حتما باید همین مراحل رو این بار برای sda6 انجام بدید. قبلش پارتیشن قبلی رو unmount کنید یا sda6 رو توی یه پوشه دیگه مانت کنید.

واسه unmount کردن:

cd
umount /dev/sda5  /mnt/esxi_disk
mount /dev/sda6  /mnt/esxi_disk

واسه مانت کردن توی پوشه دیگه:

cd

mount /dev/sda6  /mnt/esxi_disk2

cd /mnt/esxi_disk2

و بقیه دستورات رو مثل قبل انجام میدید

در اینجا از توزیع لینوکس mint استفاده شده میتونید از هر لینوکس live دیگه استفاده کنید. مراحل gparted برای فهمیدن اسم پارتیشن هست اگه بدونید vmware توی کدوم پارتیشن نصب شده دیگه نیازی به این مرحله نیست

 


پاک کردن پوشه در لینوکس

بدون نظر

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

 

rm -rf “dir name”

به فرض اسم پوشه temp  باشه

rm -rf temp


Upgrading CentOS Minimal

بدون نظر

اگه Centos که نصب شده از نوع minimal باشه میتونید به نوع دیگه تبدیلش کنید

 

Basic :

yum groupinstall “Base”

 Web Server:

yum groupinstall “Web Server”

 MySQL Database Server :

yum groupinstall “MySQL Database Server”


database is not accepting commands to avoid wraparound data loss in database

بدون نظر

اگه موقع استارت IBSng با همچین اخطاری روبرو شدید
service IBSng start
Starting IBSng Core: importing required files …
forking …
IBSng started with pid=0
Calling Initializer routins
IBSng started with pid=3503
Shutting down on error
IBSng Failed to start!
Traceback (most recent call last):
File “/usr/local/IBSng/ibs.py”, line 65, in start
mainThreadInitialize()
File “/usr/local/IBSng/ibs.py”, line 40, in mainThreadInitialize
core.main.init()
File “/usr/local/IBSng/core/main.py”, line 32, in init
db_main.init()
File “/usr/local/IBSng/core/db/db_main.py”, line 48, in init
dbpool.initPool()
File “/usr/local/IBSng/core/db/dbpool.py”, line 130, in initPool
main_pool=DBPool()
File “/usr/local/IBSng/core/db/dbpool.py”, line 16, in __init__
self.__initializeHandles()
File “/usr/local/IBSng/core/db/dbpool.py”, line 23, in __initializeHandles
self.__addNewHandleToPool()
File “/usr/local/IBSng/core/db/dbpool.py”, line 34, in __addNewHandleToPool
handle=self.__createNewHandle()
File “/usr/local/IBSng/core/db/dbpool.py”, line 39, in __createNewHandle
return db_handle.getDBHandle()
File “/usr/local/IBSng/core/db_handle.py”, line 4, in getDBHandle
return db_pg.db_pg(“IBSng”,DB_HOST,DB_PORT,DB_USERNAME,DB _PASSWORD)
File “/usr/local/IBSng/core/db/ibs_db.py”, line 9, in __init__
self.connect(dbname,host,port,user,password)
File “/usr/local/IBSng/core/db/db_pg.py”, line 17, in connect
raise ibs_exceptions.DBException(str(e))
DBException: FATAL: database is not accepting commands to avoid wraparound data loss in database “postgres”
HINT: Stop the postmaster and use a standalone backend to vacuum database “postgres”.

[FAILED]
[root@ibsng ~]# Traceback (most recent call last):
File “/usr/local/IBSng/ibs.py”, line 89, in ?
start()
File “/usr/local/IBSng/ibs.py”, line 75, in start
core.main.mainThreadShutdown()
File “/usr/local/IBSng/core/main.py”, line 144, in mainThreadShutdown
server.shutdown()
File “/usr/local/IBSng/core/server/server.py”, line 25, in shutdown
if not server_started:
NameError: global name ‘server_started’ is not defined

 

برای حل این مشکل این مراحل رو انجام بدید

/etc/init.d/postgresql stop

su postgres

touch /tmp/fix.sql

echo “VACUUM FULL;” > /tmp/fix.sql

postgres -D /var/lib/pgsql/data YOUR_DATABASE_NAME < /tmp/fix.sql

 

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

DBException: FATAL: database is not accepting commands to avoid wraparound data loss in database “postgres”

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

postgres -D /var/lib/pgsql/data postgres < /tmp/fix.sql

بعد چند لحظه صبر میکنید تا مراحل انجام بشه  و exit میزنید

etc/init.d/postgresql restart

 

 

 

 


ایجاد swap در لینوکس

بدون نظر

ابتدا یه پارتیشن خالی ایجاد میکنید به فرض اسم پارتیشن sda2 هست

این دستور رو وارد می کنید

sudo mkswap /dev/sda2

و بعدش این دستور
sudo swapon -U UUID

به جای UUID باید مقدارش رو جایگزین کنید. برای بدست آوردن UUID این دستور رو وارد کنید
blkid /dev/sda2

بعد این دستور رو بزنید

/etc/fstab

و این خطر رو وارد کنید اونجا

UUID=xxx    none    swap    sw      0   0

به جای xxx مقدار UUID که قبلا بدست آوردید رو وارد کنید