-
October 21st, 2015, 00:39
#1
بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
با سلام خدمت دوستان.
چندی پیش جهت انجام تنظیمات بک آپ گیری در یکی از سرورهای اصلی ما یک اسکریپت بصورت دستنویس نوشتیم گفتیم خدمت همکاران انتشار دهیم تا استفاده کنند.
کارکرد بسیار آسان هست و شما می توانید بصورت کران جاب هر چند ساعت یکبار از دیتابیس های خود بک آپ گرفته و به یک اکانت 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
در غیر این صورت با ارور عدم دسترسی مواجه خواهید شد!
موفق باشید.
ویرایش توسط Yas-Host : October 21st, 2015 در ساعت 01:21
-
تعداد تشکر ها ازYas-Host به دلیل پست مفید
allbert, eramserver, hegza, k-h, kouroshez, m2020k2012, mamadletsgo, mgt1234, mha1368, mibfa, mizban97, navid2zp, navidahanj, OmidX, parsvia, rasoul123, rouhallah, sadecohost, shetabanhost, skymedia, smhnw, taha_2011, tikweb.ir
-
October 21st, 2015 00:39
# ADS
-
October 21st, 2015, 00:53
#2
عضو انجمن
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
بسیار عالی و مفید یاسین جان ♥
سپاس ازت به خاطر نشر این اسکریپت قطعا بسیار کمک خواهد کرد به افراد این عرصه
-
-
October 21st, 2015, 01:28
#3
عضو انجمن
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
اسکریپت فوق العاده ای هست
داریم استفاده می کنیم و واقعا کاربردی هست
دست آقا یاسین گل و دوست عزیزشون آقای فخر آبادی درد نکنه
ساران هاستینگ
09382294343 | 02128423379 تماس در ساعات اداری
شرکت ساران داده پردازان ارجان - ثبت 3325 | دارای نماد اعتماد الکترونیکی
-
-
October 21st, 2015, 08:24
#4
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
تشکر .
بهتر بود هم ftp و هم ایمیل میکرد
-
-
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
سلام
خیلی عالیه ممنونم
در روی هاست برای هر روز یک پوشه ایجاد م یکنه مثلا به اسم 21-5 و دیتا بیس ها را درون اون منتقل می کنه
- اگه روزی دو بار تکرار بشه جایگزین می شوند؟
- اگر بخواین فشرده کنه و منتقل کنه چه دستوری باید اضافه کنیم؟
- اگر بخوایم به صورت روزانه و هفتگی داشته باشیم چه تغییراتی باید بدیم؟
سپاس
-
-
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
نوشته اصلی توسط
navid
سلام
خیلی عالیه ممنونم
در روی هاست برای هر روز یک پوشه ایجاد م یکنه مثلا به اسم 21-5 و دیتا بیس ها را درون اون منتقل می کنه
- اگه روزی دو بار تکرار بشه جایگزین می شوند؟
- اگر بخواین فشرده کنه و منتقل کنه چه دستوری باید اضافه کنیم؟
- اگر بخوایم به صورت روزانه و هفتگی داشته باشیم چه تغییراتی باید بدیم؟
سپاس
بله overwrite می شود.
باید در اسکریپت تعیین کنید که به جای اینکه تک تک دیتابیس ها را در temp directory ذخیره کند و انتقال دهد ابتدا ذخیره کند و سپس فشرده کند و فایل فشرده شده را منتقل کند.
اما بهتر است تک تک انتقال دهد زیرا ممکن است در حین ذخیره سازی سرور stop شود . حداقل بعضی دیتابیس ها گرفته باشد !!
کران جاب استفاده کنید.
-
-
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
کامند زیاد بلد نیستم
لطفآ دستور اصلاح شده را بگید که هم فشرده کنه و هم تک تک منتقل کنه.
ویرایش توسط navid : May 21st, 2016 در ساعت 16:26
-
-
پاسخ : بک آپ گیری از دیتابیس های سرور بصورت Dump و انتقال به FTP
نوشته اصلی توسط
navid
کامند زیاد بلد نیستم
لطفآ دستور اصلاح شده را بگید که هم فشرده کنه و هم تک تک منتقل کنه.
متاسفانه وقت کافی برای انجام مورد فوق در حال حاضر نداریم.
از دیگر دوستان درخواست کنید انجام می دهند براتون.
-
تعداد تشکر ها از Yas-Host به دلیل پست مفید