ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP



Yas-Host
October 21st, 2015, 00:39
با سلام خدمت دوستان.

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

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

ابتدا دو فایل زیر را ایجاد می کنیم :



touch /root/mysql_dump.sh
touch /root/ftp_upload.sh


سپس با یک ویرایشگر فایل اول /root/mysql_dump.sh را باز کرده و محتویات زیر را قرار می دهیم :



#!/bin/bash


Time=$(date +"%d-%m");


cd /var/lib/mysql/
mkdir /home/dbbacks/
mkdir /home/dbbacks/backups
mkdir /home/dbbacks/backups/$Time
ls -d */ > /home/dbbacks/backups/$Time/db.txt
sed -i "s|/||g" /home/dbbacks/backups/$Time/db.txt
cd /home/dbbacks/backups/$Time
for user in `/bin/cat /home/dbbacks/backups/$Time/db.txt` ; do mysqldump $user > $user.sql && sh /root/ftp_upload.sh $user ; rm -rf $user.sql ; done


سپس فایل بعدی /root/ftp_upload.sh را باز کرده و محتویات زیر را قرار می دهیم :



#!/bin/bash
Time=$(date +"%d-%m");
cd /home/dbbacks/backups/$Time


HOST=123.123.123.123
USER=usernameftp
PASS=passwordftp


ftp -inv $HOST << EOF
user $USER $PASS


mkdir $Time
cd $Time
put $1.sql


bye
EOF


یک سری توضیحات در مورد محتویات بالا خدمت شما اعلام می کنم:
1- ابتدا وارد فولدر دیتابیس ها شده که ( شما باید مسیر دیتابیس های خود را اگر تغییر داده باشید در فایل بالا جایگزین کنید)
2- فولدر های مربوطه در شاخه /home ایجاد کرده تا یک temporary برای export گرفتن و انتقال فایل .sql به ftp ما باشد.
3-4 بر اساس روز یک فولدر به تاریخ روز_ماه ایجاد کرده و در یک فایل db.txt تمامی دیتابیس های شما را اعمم از دیتابیس mysql قرار می دهد.
5- سپس از تمامی نام های دیتابیس موجود در db.txt یک export می گیرد و در مسیر temporary ما ذخیره و به ftp ما transfer کرده و delete می کند!

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

شما می توانید هر چند ساعت یکبار با استفاده از کامند زیر از دیتابیس های خود بک آپ تهیه کنید:



crontab -e
0 * * * * sh /root/mysql_dump.sh


این اسکریپت با همکاری دوست عزیزم جناب آقای فخر آبادی آماده شده است.

این اسکریپت در سی پنل به درستی اجرا می گردد.

در دایرکت ادمین حتما باید username و password روت mysql server را از فایل /usr/local/directadmin/conf/mysql.conf برداشته و بصورت زیر در فایل زیر قرار دهید:



nano ~/.my.cnf

[client]
user=da_admin
password=123123123


در غیر این صورت با ارور عدم دسترسی مواجه خواهید شد!

موفق باشید.

kouroshez
October 21st, 2015, 00:53
بسیار عالی و مفید یاسین جان ♥
سپاس ازت به خاطر نشر این اسکریپت قطعا بسیار کمک خواهد کرد به افراد این عرصه

parsvia
October 21st, 2015, 01:28
اسکریپت فوق العاده ای هست
داریم استفاده می کنیم و واقعا کاربردی هست
دست آقا یاسین گل و دوست عزیزشون آقای
فخر آبادی درد نکنه

mibfa
October 21st, 2015, 08:24
تشکر .

بهتر بود هم ftp و هم ایمیل میکرد

navid
May 21st, 2016, 15:31
سلام
خیلی عالیه ممنونم

در روی هاست برای هر روز یک پوشه ایجاد م یکنه مثلا به اسم 21-5 و دیتا بیس ها را درون اون منتقل می کنه

- اگه روزی دو بار تکرار بشه جایگزین می شوند؟
- اگر بخواین فشرده کنه و منتقل کنه چه دستوری باید اضافه کنیم؟
- اگر بخوایم به صورت روزانه و هفتگی داشته باشیم چه تغییراتی باید بدیم؟

سپاس

Yas-Host
May 21st, 2016, 15:38
سلام
خیلی عالیه ممنونم

در روی هاست برای هر روز یک پوشه ایجاد م یکنه مثلا به اسم 21-5 و دیتا بیس ها را درون اون منتقل می کنه

- اگه روزی دو بار تکرار بشه جایگزین می شوند؟
- اگر بخواین فشرده کنه و منتقل کنه چه دستوری باید اضافه کنیم؟
- اگر بخوایم به صورت روزانه و هفتگی داشته باشیم چه تغییراتی باید بدیم؟

سپاس

بله overwrite می شود.

باید در اسکریپت تعیین کنید که به جای اینکه تک تک دیتابیس ها را در temp directory ذخیره کند و انتقال دهد ابتدا ذخیره کند و سپس فشرده کند و فایل فشرده شده را منتقل کند.

اما بهتر است تک تک انتقال دهد زیرا ممکن است در حین ذخیره سازی سرور stop شود . حداقل بعضی دیتابیس ها گرفته باشد !!

کران جاب استفاده کنید.

navid
May 21st, 2016, 15:58
کامند زیاد بلد نیستم

لطفآ دستور اصلاح شده را بگید که هم فشرده کنه و هم تک تک منتقل کنه.

Yas-Host
May 21st, 2016, 18:09
کامند زیاد بلد نیستم

لطفآ دستور اصلاح شده را بگید که هم فشرده کنه و هم تک تک منتقل کنه.

متاسفانه وقت کافی برای انجام مورد فوق در حال حاضر نداریم.

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