اسکریپت بکآپگیری از سرویس LAMP برای سرورهای اختصاصی یا مجازی تحت اوبونتو/دبیان
انگیزه
اهمیت کپی برداری از دادهها یا گرفتن نسخهی پشتیبان (Backup) برای هر وبمستری به منزلهی آخرین و به تبع آن مهمترین لایهی امنیتیست. و نیاز به یک اسکریپت بکآپگیری (بصورت کامل و حتیالامکان بهینه) برای سرورهای اختصاصی (dedicated) یا مجازی (virtual) تحت اوبونتو/دبیان احساس میشود. بنابراین نوشتن این اسکریپت و پروبال دادن به آن را از اینجا و با اولین تجربهی موفقی که داشتم آغاز میکنم. (پیشورژنِ ۰.۰۱)
فهرست مندرجات
پیشنیازها
۱. شما یک وبمستر هستید یا دسترسی کامل به root سرور دارید.
۲. بر روی یک سرور اختصاصی یا مجازی سرویس(های) خاصی را اجرا میکنید.
مراحل بکآپ گیری
لیستِ todo و اولویتهای اصلی
۱. بهینه بودن به معنای کاهش load اضافی، پرهیز از پیچیدگی و حجم کم!
۲. ارائهی مشخصات و عملکرد هر خط در کنار آن
۳. ارائهی یک دستورالعمل برای استفاده از اسکریپت
۴. نوشتن نصاب خودکار
۵. multifunction بودن و سازگاری با همهی انواعِ دیتابیسها و سازگاریِ shell script با توزیعهای محبوب دیگر
۶. دستور crontab برای اجرای خودکار و scheduler
راهنمای راهاندازی (بدونِ نصب)
نکته: دستورالعمل برای همهی نسخههای اوبونتو و دبیان کار میکند.
۱. پس از ورود به محیط شل سرور باید مراحل بعدی را به عنوان root اجرا کنید:
نکته: اگر از دبیان سرور استفاده میکنید بستهی sudo بصورت پیشفرض نصب نیست یا نصب کنید یا از دستور - su استفاده کنید.
۲. دایرکتوریِ backup را ایجاد کنید. توجه کنید این اسکریپت با سه فایل کلیدی به نامهای زیر کار دارد:
backup backup.log backup.sh
پس فایلِ backup.sh را ایجاد/ویرایش کنید:
nano backup.sh
۳. اسکریپت زیر را شخصی سازی کنید:
نکته: فرض بر اینست که شما میخواهید از ۴ دیتابیس mysql و محتویات دایرکتوری home برای سابدامینها و www بکآپگیری کنید. (در مرحلهی اول کمی ناقص به نظر میرسه)
echo Backup log `date` >> /root/backup.log
echo "===========================================" >> /root/backup.log
echo "Files Archive:" >> /root/backup.log
echo "===========================================" >> /root/backup.log
cd /var
tar -cvzf /root/backup/www.tgz www/ >> /dev/null
cd /home
tar -cvzf /root/backup/home.tgz [username shomaa]/ >> /dev/null
echo "===========================================" >> /root/backup.log
echo "DATABASE Backup:" >> /root/backup.log
echo "===========================================" >> /root/backup.log
cd /root/backup
mysqldump -u [username database aval] -p[passworde database aval] [naame database aval] > [naame database aval ba formate dorost]`date +%y%m%d`.sql
mysqldump -u [username database dovom] -p[passworde database dovom] [naame database dovom] > [naame database dovom ba formate dorost]`date +%y%m%d`.sql
mysqldump -u [username database sevom] -p[passworde database sevom] [naame database sevom] > [naame database sevom ba formate dorost]`date +%y%m%d`.sql
mysqldump -u [username database chaaharom] -p[passworde database chaaharom] [naame database chaaharom] > [naame database chaaharom ba formate dorost]`date +%y%m%d`.sql
echo "===========================================" >> /root/backup.log
echo "Final Backup:" >> /root/backup.log
echo "===========================================" >> /root/backup.log
cd /root
tar -cvzf /root/backup.tgz backup/ >> /dev/null
rm /root/backup/*
mv /root/backup.tgz /var/www/`date +%y%m%d`.tgz
echo "" >> /root/backup.log
echo "" >> /root/backup.log
۴. فایل را ذخیره و دسترسی آنرا درست کنید:
chmod +x backup.sh
راهنمای استفاده
۱. مرحلهی ۱ راهاندازی
۲. اجرای فایل:
sh backup.sh