یک شل اسکریپت ساده (از سایت ابونتو) که توسط آن از دایرکتوری های مشخص شده بر روی یک دایرکتوری NFS متصل شده (mount شده) بر روی ماشین محلی، Backup تهیه می کند. در اینجا به طور مفصل درباره NFS و چگونگی تنظیم آن در توزیع های گوناگون (CentOS 6, Debian/Ubuntu و openSUSE) توضیح داده شده است. همچنین از اینجا می توانید بیشتر در مورد Bash بخوانید. این اسکریپت از فرمان tar استفاده می کند تا دایرکتوری ها را فشرده کند و در دایرکتوری راه دور mount شده قرار دهد.کد شل به صورت زیر است که می توانید اصل آنرا از سایت مرجع آن در اینجا دریافت کنید.
همچنین از اینجا چگونگی تعریف متغیرها در Bash را مطالعه کنید. شل اسکریپت بالا بسیار ساده است.
- متغیر backup_files$ به صورت یک آرایه دایرکتوری هایی که باید از آنها تحت یک فایل پشتیبان تهیه شود را نگه می دارد. دایرکتوری ها با یک فاصله از هم جدا شده اند و کل آنها میان ” ” قرار گرفته اند. می توانید مسیر دایرکتوری های مورد نظر خود را به این متغیر اضافه کنید.
- متغیر archive_file$ ترکیبی از دومتغیر day$ و hostname$ است که نامی منحصر به فرد را برای فایل پشتیبان بر اساس زمان و نام ماشینی که فایل تهیه شده است ایجاد می کند. (قرار است از چندین ماشین فایل های پشتیبان آنها بر روی یک دایرکتوری راه دور که بر روی تک تک آنها توسط NFS متصل شده است، فایل های پشتیبان تهیه و در آن قرار گیرد.)
- متغیر dest$ مسیر نقطه اتصال دایرکتوری NFS راه دور را بر روی ماشین محلی تعیین می کند که در اسکریپت بالا mnt/backup/ است.
- یپغامی توسط دستور echo نشان داده شده و توسط دستور date نیز تاریخ/زمان نشان داده می شود.
- توسط دستور tar بر روی دایرکتوری مشخص شده توسط متغیر dest$ فایلی منحصر به فرد توسط متغیر archive_file$ از دایرکتوری های تعیین شده توسط متغیر backup_files$ تهیه و ذخیره می شود. از اینجا می توانید دستور tar را مطالعه کنید.
می توانید اسکریپت را توسط دستور زیر به صورت دستی اجرا کنید. (توجه کنید در دستور زیر فرض شده اسکریپت در دایرکتوری جاری قرار دارد، در غیر این صورت باید مسیر منتهی به فایل را مشخص کنید) و فایل را با نام backup.sh ذخیره کرده ایم. همچنین چگونگی اجرای یک اسکریپت را می توانید از اینجا بخوانید.
sudo bash backup.sh
و یا اینکه اجرای آنرا توسط cron (و مثال هایی از crontab) به طور خودکار زمانبندی کنید. دستور crontab -e (فرض کرده ایم که این اسکریپت، یعنی فایل backup.sh توسط کاربر root اجرا و یا زمانبندی می شود). به هر حال اگر می خواهید فایل پشتیبان شده را برای بازیابی اطلاعات استفاده کنید، از دستور زیر استفاده کنید.
/ cd
sudo tar -xzvf /mnt/backup/host-Monday.tgz
دستور بالا فایل ها را بروی محل قبلی (فایل هایی همنام با آنها) بازنویسی می کند.