اسکریپت ریموت بکاپ سی‌پنل و دایرکت ادمین

درود بر شما

همانطور که استحضار دارید تهیه نسخه‌های پشتیبان یا بکاپ یکی از مهم‌ترین و ضروری‌ترین کارهایی هست که هر سرویس‌دهنده هاستینگ و اصولا هرکسی که سرور داره و کار مدیریت سرور می‌کنه باید انجام بده. خدای ناکرده اگر اشکالی برای یوزری پیش بیاد و شما بکاپ نداشته باشید دشمن شاد خواهید شد.

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

لوکال بکاپ خوبه چون سرعت دسترسی بهش بیشتره اما اشکال اساسیش اینه که اگر مشکلی برای سرور پیش بیاد، فرضا دیسک سرور بسوزه همه لوکال بکاپ‌ها هم می‌سوزن و اون وقته که گردنمون در برابر مشتری از مو هم باریکتر خواهد شد. بنابراین لازمه علاوه بر تهیه لوکال بکاپ حتما تمهیداتی هم برای تهیه منظم ریموت بکاپ‌ها داشته باشیم.

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

در اینجا برای شما اسکریپتی تدارک دیدیم که این کار رو برای شما روی سرورهایی که از کنترل‌پنل cPanel یا DirectAdmin استفاده می‌کنند بصورت خودکار انجام بده، کافیه اسکریپت رو توی کران جاب سرور ریموت بکاپ قرار بدید تا مثلا هر هفته یکبار براتون ریموت بکاپ تهیه کنه.

روش کار اسکریپت به این صورته که آخرین نسخه فول بکاپ سرورهای سی پنلی (کامپرس یا اینکریمنتال) یا دایرکت ادمینی رو به دایرکتوری home سرور ریموت rsync می‌کنه و در دایرکتوری به اسم هاست نیم سرور لوکال بکاپ یا آی‌پی سرور (بسته به این که شما در برابر متغیر HOST در اسکریپت کدوم رو می‌نویسید) منتقل می‌‌کنه.

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

https://github.com/Farshid928/bash-scripts/blob/master/cp-da-remote-bak.sh

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

اسکریپت خواندن خط به خط محتویات یک فایل

و تمام!

اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

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

طبیعتا تنها راه انجام این انتقال اینه که سرور جدیدی با کنترل‌پنل دایرکت‌ادمین ستاپ بشه و اکانت‌ها از سی‌پنل به دایرکت ادمین منتقل و ریستور بشن.

خبر خوب این که دایرکت‌ادمین اخیرا اسکریپت تبدیل بکاپ سی‌پنل به دایرکت‌ادمین رو تو نسخه جدیدش اضافه کرده و اگر شما فول بکاپ سی‌پنل رو با فرمت اسم cpmove-user.tar.gz روی دایرکت‌ادمین ریستور کنید، بصورت خودکار به فول بکاپ دایرکت‌ادمین تبدیل و ریستور می‌شه.

یک راه انتقال اینه که از همه اکانت‌های سی‌پنل فول بکاپ بگیرید، به یکباره همه رو به سرور دایرکت‌ادمین انتقال بدید و در نهایت همه اکانت‌ها رو یک جا ریستور بزنید.

این کار اشکالاتی داره…

ادامه خواندن اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

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

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

/scripts/pkgacct admin

انجام این کار شاید برای یک، دو، پنج یا ده تا یوزر زیاد سخت نباشه، اما اگر ۲۰۰ تا یوزر داشته باشیم چطور؟ آیا باید بشینیم از تک تک اکانت‌ها بکاپ بگیریم؟ طبعا نه! نه عمر ما انقدر طولانیه که برای این چیزهای پیش پا افتاده وقت این چنینی بذاریم و نه دنیای لینوکس اونقدر محدوده که نتونه راهی جلوی ما بذاره که این کار رو توسط اتوماسیون انجام بدیم.

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

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

گاها ممکنه به هر دلیلی بخواید روی سیستم عامل لینوکس‌تون کامندهای اختصاصی داشته باشید. خب ما می‌دونیم یک سری دستورات توی کرنل لینوکس هستند، مثل دستور ls که لیست فایل‌ها و دایرکتوری‌های موجود در یک دایرکتوری رو به شما نشون می‌ده. یا یک سری دستورات بعد از نصب یک سری از برنامه‌ها برای شما اضافه می‌شن، مثل دستور ls که بعد از نصب برنامه‌ای تحت همین عنوان (sudo apt install ls) به سیستم عامل شما اضافه می‌شه و در صورتی که اجرا بشه، قطار در حال حرکتی صفحه ترمینال شما رو مزین می‌کنه.

حالا من می‌خوام دستوراتی داشته باشم که کارهایی رو برای من انجام بدن. کارهایی رو که خودم مدنظر دارم، با دستوراتی که خودم تعیین کردم. هدف از انجام این کار طبیعتا صرفه‌جویی در زمان انجام کارها برای ما هست.

خب، چطور این کار رو انجام بدم؟

ادامه خواندن ایجاد کامند اختصاصی در لینوکس

شل اسکریپت بکاپ از دیتابیس‌های MySQL

لکن اگر نیاز به اسکریپتی دارید که بتواند از همه دیتابیس‌هاس MySQL یک سرور بکاپ بگیرد می‌توانید از اسکریپت زیر استفاده نُمایید.

 #! /bin/bash
 
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/backup/dbs"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump

mkdir -p "$BACKUP_DIR/$TIMESTAMP"
 
databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
 
for db in $databases; do
  $MYSQLDUMP --force --opt -u root --databases $db | gzip > "$BACKUP_DIR/$TIMESTAMP/$db.gz"
done

find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \;

echo Databases Backup Task Completed On $HOSTNAME

کار این اسکریپت این هست که از همه دیتابیس‌های MySQL بکاپ گرفته، با فرمت gz فشرده‌سازی کرده و در مسیر زیر نگهداری می‌کند.

/backup/dbs

هربار اسکریپت اجرا می‌شه دیتابیس‌های دامپ شده در یک دایرکتوری که نام اون تاریخ روز اجرای اسکریپت هست ذخیره می‌شن.

همچنین لاین زیر هم بدین منظور بکار رفته که بکاپ‌هایی که 30 روز یا بیشتر از زمان ایجادشون گذشته حذف بشن تا خدای‌ناکرده مشکل کمبود فضای دیسک هم ایجاد نشه.

find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \;

اسکریپت تهیه بکاپ از اکانت‌های ساسپند شده در cPanel

یکی از چالش‌ها و مشکلاتی که اخیرا در هاست اشتراکی با کنترل‌پنل cPanel باهاش مواجه شدم حذف اکانت کاربرهایی بود که سرویسشون به علت عدم تمدید هاست ساسپند شده بود. کاربر به هر علتی (فراموشی، مشغله، قتل، آلودگی هوا و …) هاستش رو تمدید نمی‌کرد و بعد از مدتی که برای تمدید هاستش مراجعه می‌کرد و خبر موجود نبودن اطلاعات و بکاپ رو از ما می‌شنید، کانه تیری که از چله کمان در رفته باشه آتش خشمش رو بر ما فرو می‌پاشید. حالا ما هرچقدرم سعی بر این داشتیم که کاربر رو قانع کنیم مشکل از ما نیست و کوتاهی از خودش بوده، جمیع تلاش‌هامون آبی بود که در هاون می‌کوبیدیم. از همین رو و به درخواست شما عزیزان، تصمیم گرفتم بکاپ‌ اکانت‌هایی که در کنترل‌پنل cPanel به علت عدم تمدید ساسپند شدند رو در جای دیگری نگهداری کنم تا مدت زمان بیشتری بتونیم از اون‌ها مراقبت و نگهداری کنیم.

ادامه خواندن اسکریپت تهیه بکاپ از اکانت‌های ساسپند شده در cPanel