یکی از روش های ممکن برای بکاپ گیری خودکار فایل های مورد نظرمان در لینوکس، استفاده از tar و cron job است.ایتدا باید با قالب کلی دستورات در corntab آشنا باشید که میتوانید مشخص کنید چند وقت به چند وقت بک آپ بگیرید که در تصویر زیر به صورت خلاصه و مفید توضیح داده شده است
خواسته شما ممکن است یکی از دو حالت زیر باشد
1- نیاز به بکاپ فایلهای پیشین ندارید:
در این صورت تنها کافیست در crontab به روش زیر دستور بکاپ را وارد کنید که هر بار بکاپ می کند روی فایل قبلی بکاپ overwrite می شود
sudo -i crontab -e
با یکی از ادیتورهای لینوکس فایل crontab باز می شود سپس در یک لاین جداگانه این دستور را وارد میکنیم:
tar -cpzf /path/to/backup/directory/filename.tar.gz /path/to/source/files and directory
در این تصویر پنج شنبه می بینیم که هر هفته ساعت 19:49 بکاپ میگیرد.
2- میخواهید فایلهای بکاپ پیشین هم باشد:
نیاز هست اسکریپتی بنویسیم که در هر بار اجرا شدن، فایل بکاپی با این فرمت ایجاد کند:
backup-month-day-year_hour:minute
ابتدا فایلی ایجاد میکنیم که به پسوند sh. ختم شود و مجوزهای توصیه شده زیر را به آن می دهیم:
touch /home/samurai/backup.sh && chmod 755 backup.sh
سپس به کمک یکی از ادیتورها، فایلی را که ایجاد کردیم باز میکنیم و اسکریپت مورد نظر را طبق آنچه در زیر آمده است مینویسیم و سپس ذخیره میکنیم.
در انتتها به کمک دستور :
sudo -i crontab -e
crontab را ادیت میکنیم و تنها کافی است که مسیر اسکریپت و تنظیمات تاریخ و ساعت و ... را طبق تصویر زیر ست کنیم.
پنج شنبه هر هفته ساعت 19:49 دقیقه فایل بکاپی طبق فرمت اسمی ذکر شده ایجاد می شود.
ممنونم از شما. اره ادیتور itpro مشکل داره علامت ها رو مثل اینکه نمیگیره. اسلش هم تایپ کنید پست که بشه حذف میشه.
مشکل ستاره داره اینجا
خونه اول 0 خونه دوم 12 بقیه ستاره
1-بله
2-
شما از خود دایرکتوری روت بکاپ گرفتین.
اگه بخام از کل سیستم عامل از خود ریشه روت بکاپ بگیرم فقط علامت / رو بذارم دیگه؟
یه سوال دیگه:
اگه تو crontab بخام براش تعریف کنم مثلا هر روز ساعت 12 بکاپ بگیره چطوری باید تعریفش کنم؟
البته عاقلانه تر اینه که شما میخواید از / بکاپ بگیرید
لاین آخر مسیر هردایرکتوری که نیاز دارید بزنید من فقط home و root رو بکاپ گرفتم شما هر چی دوست دارید به این شکل اضافه کنید
آهان
باید در خطی که کامند اسکریپت رو زدین به کمک اپشن tar مسیرهاییکه میخواید با فرض مثال به این شکل exclude کنید
میخام exclude برای بکاپ تعریف کنم که از یه سری از دایرکتوریها بکاپ نگیره.
چطوری توی اسکریپ مسیر exclude رو تعین کنم؟
1-فقط مسیر اسکریپ رو بدین نیازی به کامند تار نیست
2-متوجه نشدم منظورتونو میخاید چیکار کنید؟
*سلام دوست عزیز :
دو تا سوال :
وختی اسکریپ رو در crontab قرار میدیم یعنی دیگه لازم نیست خود کامند tar رو تو crontab بنویسیم؟
اگه بخایم مسیر exclude تعریف کنیم باید چه کار کنیم چون به هر حال بعضی از دایرکتوریها رو باید exclude کرد مثل :
proc/
sys/
و حتی خود دایرکتوری بکاپ*
خیلی هم عالی ... دستت هم درد نکنه !!!