این دستور rsnapshot است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
rsnapshot - ابزار عکس فوری سیستم فایل از راه دور
خلاصه
rsnapshot [-vtxqVD] [-c cfgfile] [فرمان] [args]
شرح
rsnapshot یک ابزار عکس فوری سیستم فایل است. این می تواند عکس های فوری افزایشی از محلی و
فایل سیستم های راه دور برای هر تعداد ماشین.
عکسهای فوری سیستم فایل محلی با استفاده میشوند rsync(1). اتصالات از راه دور ایمن هستند
با rsync به کار گرفته می شود SSH(1)، در حالی که اتصالات rsync ناشناس به سادگی از یک rsync استفاده می کنند
سرور هر دو انتقال از راه دور و محلی به rsync بستگی دارد.
rsnapshot فضای دیسک را بسیار بیشتر از آنچه تصور می کنید صرفه جویی می کند. مقدار فضای مورد نیاز
تقریباً به اندازه یک نسخه پشتیبان کامل به اضافه یک کپی از هر فایل اضافی است
تغییر کرد. rsnapshot از لینک های سخت استفاده زیادی می کند، بنابراین اگر فایل تغییر نکرد،
عکس فوری بعدی به سادگی یک پیوند سخت به همان فایل است.
rsnapshot معمولاً توسط یک کار cron یا مجموعه ای از کار های cron به عنوان ریشه فراخوانی می شود. این است
با این حال، این امکان وجود دارد که به عنوان هر کاربر دلخواه با یک فایل پیکربندی جایگزین اجرا شود.
تمام گزینه های مهم در یک فایل پیکربندی که به طور پیش فرض قرار دارد مشخص شده اند
at /etc/rsnapshot.conf. یک فایل جایگزین را می توان در خط فرمان مشخص کرد. وجود دارد
همچنین گزینه های اضافی که می توانند در خط فرمان منتقل شوند.
گزینه های خط فرمان به شرح زیر است:
-v پرمخاطب، نشان می دهد که دستورات پوسته در حال اجرا هستند
-t تست کنید، دستورات پوسته ای را که اجرا می شوند را نشان دهید
-c مسیر فایل پیکربندی جایگزین
-x یک فایل سیستم، پارتیشن ها را در هر نقطه پشتیبان متقابل نکنید
-q آرام، هشدارهای غیر کشنده را سرکوب کنید
-V مانند -v، اما با جزئیات بیشتر
-D یک آتشدان از اطلاعات تشخیصی
پیکربندی
/etc/rsnapshot.conf فایل تنظیمات پیش فرض است. تمام پارامترهای این فایل باید باشد
با زبانه ها جدا شده اند. /usr/share/doc/rsnapshot/examples/rsnapshot.conf.default.gz می تواند مورد استفاده قرار گیرد
به عنوان مرجع
توصیه می شود کپی کنید
/usr/share/doc/rsnapshot/examples/rsnapshot.conf.default.gz به /etc/rsnapshot.confو
سپس اصلاح کنید /etc/rsnapshot.conf با توجه به نیازهای شما
خطوط طولانی ممکن است به چند خط تقسیم شوند. خطوط "ادامه". باید با یک فاصله شروع کنید
یا یک کاراکتر تب خطوط ادامه دارای تمام فضای خالی اصلی و انتهایی خواهند بود
حذف شود، و سپس با یک کاراکتر برگه میانی به خط قبلی اضافه شود
هنگامی که فایل پیکربندی تجزیه می شود.
در اینجا لیستی از پارامترهای مجاز آمده است:
config_version نسخه فایل پیکربندی (الزامی). پیش فرض 1.2 است
snapshot_root مسیر فایل سیستم محلی برای ذخیره تمام عکس های فوری
include_conf در این مرحله فایل دیگری را در پیکربندی قرار دهید.
این بازگشتی است، اما ممکن است لازم باشد هنگام تعیین مسیرها مراقب باشید
کدام فایل را شامل شود ما بررسی می کنیم که آیا فایلی که مشخص کرده اید است یا خیر
قابل خواندن است، و اگر اینطور نباشد، خطا خواهد داد. توصیه می کنیم از یک مسیر کامل استفاده کنید. مانند
یک مورد خاص، مقدار include_conf ممکن است در "backticks" محصور شود که در این صورت
اجرا می شود و هر چیزی که به STDOUT می ریزد در آن گنجانده می شود
پیکربندی توجه داشته باشید که متا کاراکترهای پوسته ممکن است تفسیر شوند.
no_create_root اگر روی 1 تنظیم شود، rsnapshot دایرکتوری snapshot_root را ایجاد نمی کند
cmd_rsync مسیر کامل برای rsync (الزامی)
cmd_ssh مسیر کامل به ssh (اختیاری)
cmd_cp مسیر کامل به cp (اختیاری، اما باید نسخه گنو باشد)
اگر از لینوکس استفاده می کنید، باید cmd_cp را حذف کنید. اگر از پلتفرم استفاده می کنید
که cp گنو ندارد، باید cmd_cp را به صورت کامنت خارج کنید.
با cp گنو، rsnapshot میتواند هم از فایلهای معمولی و هم از فایلهای خاص مراقبت کند (مانند
به عنوان FIFO ها، سوکت ها، و دستگاه های بلوک/شخصیتی) در یک پاس.
اگر cmd_cp غیرفعال باشد، rsnapshot از تابع داخلی خود استفاده می کند.
native_cp_al() برای تهیه نسخه پشتیبان از فایل ها و دایرکتوری های معمولی. سپس این خواهد شد
پس از آن یک فراخوان جداگانه برای rsync برای انتقال فایلهای خاص (با فرض
وجود دارد).
cmd_rm مسیر کامل به rm (اختیاری)
cmd_logger مسیر کامل به لاگر (اختیاری، برای پشتیبانی از syslog)
cmd_du مسیر کامل به du (اختیاری، برای گزارش استفاده از دیسک)
cmd_rsnapshot_diff مسیر کامل به rsnapshot-diff (اختیاری)
cmd_preexec
مسیر کامل (به اضافه هر آرگومان) به اسکریپت preexec (اختیاری). این اسکریپت اجرا خواهد شد
بلافاصله قبل از هر عملیات پشتیبان گیری (اما نه هیچ چرخشی). اگر اعدام
خراب می شود، rsnapshot بلافاصله متوقف می شود.
cmd_postexec
مسیر کامل (به اضافه هر آرگومان) به اسکریپت postexec (اختیاری). این اسکریپت خواهد شد
بلافاصله پس از هر عملیات پشتیبان (اما نه هر چرخشی) اجرا شود. اگر
اجرا با شکست مواجه می شود، rsnapshot بلافاصله متوقف می شود.
linux_lvm_cmd_lvcreate
linux_lvm_cmd_lvremove
linux_lvm_cmd_mount
linux_lvm_cmd_umount
مسیرهایی برای دستورات lvcreate، lvremove، mount و umount برای استفاده با LVM های لینوکس.
همچنین میتوانید گزینههایی را به دستورات اضافه کنید. lvcreate، lvremove، mount و
دستورات umount برای مدیریت عکس های فوری از حجم های LVM مورد نیاز است و هستند
در غیر این صورت اختیاری
نگه داشتن [نام] [شماره]
"name" به نام این سطح پشتیبان اشاره دارد (به عنوان مثال، آلفا، بتا، که همچنین نامیده می شود
"فاصله"). "تعداد" تعداد عکس های فوری برای این نوع فاصله است
که حفظ خواهد شد. مقدار "name" دستوری خواهد بود که به آن ارسال می شود
rsnapshot برای انجام این نوع پشتیبان گیری
نام مستعار منسوخ شده برای "حفظ" "فاصله" است.
مثال: نگه داشتن آلفا 6
[root@localhost]# rsnapshot آلفا
برای این مثال، هر بار که این اجرا می شود، موارد زیر اتفاق می افتد:
/alpha.5/ در صورت وجود حذف خواهد شد.
/alpha.{1,2,3,4} همه در صورت وجود 1+ می چرخند.
/alpha.0/ در کپی می شود /alpha.1/ با استفاده از سخت
لینک ها
سپس هر نقطه پشتیبان (که در زیر توضیح داده شده است) با مربوطه همگام سازی می شود
دایرکتوری ها در /alpha.0/
سطوح پشتیبان گیری باید در فایل پیکربندی به ترتیب، از متداول ترین تا مشخص شود
کمترین تکرار اولین ورودی ورودی است که با نسخه پشتیبان همگام سازی می شود
نکته ها. سطوح پشتیبان بعدی (به عنوان مثال، بتا، گاما، و غیره) به سادگی چرخش، با
هر سطح پشتیبان بالاتر را از سطح زیر برای دایرکتوری 0. خود می کشد.
مثال:
نگه داشتن آلفا 6
نگه داشتن بتا 7
نگه داشتن گاما 4
beta.0/ از alpha.5/ و gamma.0/ از beta.6/ منتقل خواهد شد
alpha.0/ مستقیماً از سیستم فایل همگام سازی می شود.
link_dest 1
اگر نسخه rsync شما از --link-dest (2.5.7 یا جدیدتر) پشتیبانی می کند، می توانید فعال کنید
این اجازه می دهد تا rsync برخی از مواردی را که گنو cp یا زیرروال های داخلی انجام می دهد مدیریت کند.
در غیر این صورت انجام دهید فعال کردن این باعث میشود rsnapshot کد کمی پیچیدهتر بگیرد
شاخه، اما این بهترین راه برای پشتیبانی از فایل های خاص در سیستم های غیر لینوکس است.
sync_first 1
sync_first رفتار rsnapshot را تغییر می دهد. وقتی این فعال باشد، همه تماس ها به
rsnapshot با سطوح مختلف پشتیبان گیری به سادگی فایل ها را بچرخانید. تمام پشتیبان گیری ها انجام می شود
با فراخوانی rsnapshot با آرگومان "sync". فایل های همگام سازی شده در یک ذخیره می شوند
دایرکتوری ".sync" در زیر snapshot_root.
این امکان بازیابی بهتر را در صورت قطع شدن rsnapshot در فایل فراهم می کند
وسط یک عملیات همگام سازی، زیرا مرحله همگام سازی و مراحل چرخش از هم جدا شده اند.
این همچنین به این معنی است که شما به راحتی می توانید "rsnapshot sync" را در خط فرمان اجرا کنید
بدون ترس از وادار کردن همه دایرکتوری های دیگر به چرخش. این سود
به قیمت یک عکس فوری بیشتر از فضای دیسک است. پیش فرض 0 است
(خاموش).
واژگان 2
مقدار اطلاعاتی که باید هنگام اجرای برنامه چاپ شود. مقادیر مجاز هستند
1 تا 5. پیش فرض 2 است.
1 بی صدا فقط خطاهای مرگبار نمایش داده شود
2 نمایش پیش فرض هشدارها و خطاها
3 Verbose نمایش دستورات پوسته معادل در حال اجرا
4 Extra Verbose مانند پرمخاطب، اما با جزئیات بیشتر
5 اشکال زدایی همه نوع اطلاعات
سطح ورود 3
این عدد به معنای همان است واژگان در بالا، اما میزان داده را تعیین می کند
اگر فایلی در حال نوشتن باشد، در لاگ فایل نوشته می شود.
ورود به سیستم فایل /var/log/rsnapshot
مسیر کامل فایل سیستم به فایل گزارش rsnapshot. اگر این تعریف شده است، یک فایل log
نوشته خواهد شد، با مقدار داده ای که توسط آن کنترل می شود سطح ورود. اگر این باشد
نظر داده شد، هیچ فایل لاگ نوشته نخواهد شد.
شامل [فایل-نام-الگو]
این با استفاده از دستورالعمل --include مستقیماً به rsync منتقل می شود. این پارامتر
را می توان به تعداد دفعات مورد نیاز با یک الگوی تعریف شده در هر خط مشخص کرد. دیدن
la rsync(1) صفحه مرد برای نحو.
محروم کردن [فایل-نام-الگو]
این با استفاده از دستورالعمل --exclude مستقیماً به rsync منتقل می شود. این پارامتر
را می توان به تعداد دفعات مورد نیاز با یک الگوی تعریف شده در هر خط مشخص کرد. دیدن
la rsync(1) صفحه مرد برای نحو.
include_file /path/to/include/file
این به طور مستقیم با استفاده از دستورالعمل --include-f به rsync منتقل می شود. را ببینید
rsync(1) صفحه مرد برای نحو.
exclude_file /path/to/exclude/file
این به طور مستقیم با استفاده از دستور --exclude-from به rsync منتقل می شود. را ببینید
rsync(1) صفحه مرد برای نحو.
rsync_short_args -a
فهرست آرگومان های کوتاه برای ارسال به rsync. اگر مشخص نشده باشد، "-a" پیش فرض است.
لطفا توجه داشته باشید که همه اینها باید در کنار یکدیگر باشند. مثلاً «-از» است
معتبر است، در حالی که "-a -z" نیست.
"-a" "حالت آرشیو" rsync است که به آن میگوید تا همان اندازه از سیستم فایل را کپی کند.
ابرداده برای هر فایل. این به طور خاص شامل *نمی شود
اطلاعاتی در مورد لینک های سخت، زیرا استفاده از حافظه rsync را تا حد زیادی افزایش می دهد
و سرعت آن را کاهش دهید. اگر میخواهید پیوندهای سخت را در پشتیبانگیری خود حفظ کنید، آن را اضافه کنید
"H" به این.
rsync_long_args --حذف --شماره شناسه ها --نسبت فامیلی --حذف-حذف شد
فهرست آرگومان های طولانی برای انتقال به rsync. مقادیر پیش فرض هستند
--delete --numeric-ids --relative --delete-excluded این بدان معنی است که
ساختار دایرکتوری در هر مقصد نقطه پشتیبان با آن نسخه پشتیبان مطابقت دارد
منبع نقطه ای
نقل قول در rsync_long_args مجاز است، به عنوان مثال --rsync-path="sudo /usr/bin/rsync".
می توانید از نقل قول های تکی (') یا دوگانه (") استفاده کنید، اما از نقل قول های تودرتو (شامل
نقل قول های تودرتوی مخلوط) مجاز نیستند. نقل قول مشابه در هر
نقطه پشتیبان rsync_long_args.
ssh_args -p 22
استدلال هایی که باید به ssh منتقل شوند. اگر مشخص نشده باشد، پیش فرض هیچ است.
du_args -csh
استدلال هایی که باید به دو منتقل شود. اگر مشخص نشده باشد، پیش فرض -csh است. GNU du
-csh را پشتیبانی می کند، BSD du از -csk پشتیبانی می کند، Solaris du اصلا از -c پشتیبانی نمی کند. گنو
نسخه توصیه می شود، زیرا بیشترین ویژگی ها را ارائه می دهد.
فایل قفل /var/run/rsnapshot.pid
stop_on_stale_lockfile 0
Lockfile برای استفاده در هنگام اجرای rsnapshot. این از فراخوانی دوم جلوگیری می کند
کلافه کردن اولی اگر مشخص نشده باشد، هیچ فایل قفلی استفاده نمی شود. مطمئن شوید که
از دایرکتوری استفاده کنید که به دلایل امنیتی قابل نوشتن در جهان نیست. استفاده از قفل
فایل به شدت توصیه می شود.
اگر یک lockfile هنگام شروع rsnapshot وجود داشته باشد، سعی می کند فایل را بخواند و متوقف شود
با یک خطا اگر نمی تواند. اگر *می تواند* فایل را بخواند، می بیند که آیا فرآیندی وجود دارد یا خیر
با PID ذکر شده در فایل. اگر این کار را کرد، rsnapshot با یک خطا متوقف می شود
پیام اگر هیچ فرآیندی با آن PID وجود نداشته باشد، فرض می کنیم که فایل قفل است
قدیمی است و آن را نادیده بگیرید *مگر اینکه* stop_on_stale_lockfile روی 1 تنظیم شود که در این صورت
ما متوقف می شویم
stop_on_stale_lockfile پیشفرض 0 است.
one_fs 1
از عبور rsync از پارتیشن های سیستم فایل جلوگیری می کند. این را روی مقدار 1 تنظیم کنید
این ویژگی را فعال می کند. 0 آن را خاموش می کند. این پارامتر اختیاری است. پیش فرض است
0 (خاموش).
use_lazy_deletes 1
رفتار پیش فرض rsnapshot را تغییر می دهد و در ابتدا قدیمی ترین را حذف نمی کند
عکس فوری در عوض آن دایرکتوری را به _delete.[processid] منتقل می کند و به همین صورت ادامه می دهد
طبیعی. پس از تکمیل پشتیبانگیری، فایل قفل قبلاً حذف میشود
rsnapshot شروع به حذف دایرکتوری می کند.
فعال کردن این به این معنی است که عکسهای فوری زودتر گرفته میشوند (زیرا حذف انجام نمیشود
اول)، و هر فرآیند rsnapshot دیگر مجاز است در زمان نهایی شروع شود
حذف در حال وقوع است این مزیت به قیمت استفاده از فضای دیسک بیشتر است. در
پیش فرض 0 (خاموش) است.
جزئیات نحوه کار در rsnapshot نسخه 1.3.1 تغییر کرده است. در اصل
در هر سطح پشتیبان فقط می توانید یک دایرکتوری حذف . داشته باشید. اکنون می توانید داشته باشید
بسیاری از آنها، بنابراین اگر نسخه پشتیبان آلفای بعدی شما (به عنوان مثال) در حالی که نسخه قبلی هنوز باقی است شروع شود
با انجام یک حذف تنبل، ممکن است به طور موقت دایرکتوری های _delete اضافی آویزان شوند
دور و بر.
linux_lvm_snapshotsize 2G
اندازه عکس فوری LVM (گزینه lvcreate --size).
linux_lvm_snapshotname rsnapshot
نامی که باید هنگام ایجاد عکس(های) لحظه ای حجم منطقی LVM استفاده شود (lvcreate --name
گزینه).
linux_lvm_vgpath / توسعه
مسیر به گروه های حجم LVM.
linux_lvm_mountpath /mnt/lvm-snapshot
نقطه اتصال برای استفاده برای نصب موقت عکس(های) فوری.
پشتیبان /و غیره/ لوکال هاست/
پشتیبان [ایمیل محافظت شده]:/و غیره/ example.com/
پشتیبان rsync://example.com/path2/ example.com/
پشتیبان /بود/ localhost/ one_fs=1
پشتیبان lvm://vg0/home/path2/ lvm-vg0/
پشتیبان_اسکریپت /usr/local/bin/backup_pgsql.sh pgsql_backup/
مثال:
پشتیبان /و غیره/ لوکال هاست/
پشتیبان می گیرد /و غیره/ به / 0/localhost/etc/ با استفاده از rsync در
فایل سیستم محلی
پشتیبان / usr / محلی / لوکال هاست/
پشتیبان می گیرد / usr / محلی / به / .0/localhost/usr/local/ با استفاده از
rsync در فایل سیستم محلی
پشتیبان [ایمیل محافظت شده]:/و غیره/ example.com/
پشتیبان می گیرد [ایمیل محافظت شده]:/و غیره/ به / .0/example.com/etc/
استفاده از rsync روی ssh
پشتیبان example.com:/و غیره/ example.com/
همان چیزی است اما اجازه دهید ssh نام کاربری راه دور را انتخاب کند (همانطور که در مشخص شده است
~ / .ssh / پیکربندی، در غیر این صورت همان نام کاربری محلی است)
پشتیبان [ایمیل محافظت شده]:/ usr / محلی / example.com/
پشتیبان می گیرد [ایمیل محافظت شده]:/ usr / محلی / به
/ .0/example.com/usr/local/ با استفاده از rsync روی ssh
پشتیبان rsync://example.com/pub/ example.com/pub/
از rsync://example.com/pub/ نسخه پشتیبان تهیه می کند
/ .0/example.com/pub/ با استفاده از سرور rsync ناشناس.
لطفا توجه داشته باشید که بر خلاف پشتیبان گیری از مسیرهای محلی و استفاده از rsync بر روی ssh، rsync
سرورها دارای "ماژول" هستند، که دایرکتوری های سطح بالایی هستند که صادر می شوند.
بنابراین، ماژول نیز باید در مسیر مقصد مشخص شود، به عنوان
در مثال بالا نشان داده شده است (دایرکتوری pub/ در پایان).
پشتیبان /بود/ لوکال هاست/ one_fs=1
این مانند نمونه های دیگر است، اما به ستون چهارم توجه کنید. این هست
چگونه گزینههای هر نقطه پشتیبان را تعیین میکنید تا تنظیمات جهانی را نادیده بگیرید. این
پارامتر اضافی می تواند چندین گزینه داشته باشد که با آنها از هم جدا شده اند کاما.
هنگامی که مشخص می شود rsync برای هر نسخه پشتیبان، بسیار مفید است، بنابراین:
پشتیبان root@somehost:/ یک میزبان +rsync_long_args=--exclude=/var/spool/
به علامت + توجه کنید. که به rsnapshot می گوید اضافه کردن به لیست آرگومان هایی که باید منتقل شوند
به جای جایگزین کردن لیست، rsync کنید.
پشتیبان lvm://vg0/home/path2/ lvm-vg0/
از حجم منطقی LVM به نام home، از گروه حجم vg0، نسخه پشتیبان تهیه می کند
/ .0/lvm-vg0/. ایجاد، سوار کردن، پشتیبان گیری، unmount و
یک عکس فوری LVM برای هر ورودی lvm:// حذف کنید.
پشتیبان_اسکریپت /usr/local/bin/backup_database.sh db_backup/
در این مثال، یک اسکریپت یا برنامه را برای اجرا مشخص می کنیم. این اسکریپت باید
به سادگی فایل ها و/یا دایرکتوری ها را در فهرست کاری فعلی خود ایجاد کنید.
سپس rsnapshot آن خروجی را گرفته و به دایرکتوری مشخص شده منتقل می کند
در ستون سوم
لطفاً توجه داشته باشید که هر آنچه در فهرست مقصد باشد کاملاً خواهد بود
حذف و دوباره ایجاد شد. به همین دلیل، rsnapshot از مشخص کردن شما جلوگیری می کند
یک فهرست مقصد برای یک backup_script که پشتیبانگیریهای دیگر را مخدوش میکند.
بنابراین در این مثال، بگویید اسکریپت backup_database.sh به سادگی یک دستور را اجرا می کند
پسندیدن:
#!/ بن / شل
mysqldump -uusername mydatabase > mydatabase.sql
chmod u=r,go= mydatabase.sql # r-------- (0400)
rsnapshot فایل "mydatabase.sql" ایجاد شده را می گیرد و آن را به فایل منتقل می کند
/ دایرکتوری .0/db_backup/. در اجراهای بعدی، rsnapshot
تفاوت بین فایل های ایجاد شده با فایل های قبلی را بررسی می کند.
اگر اسکریپت پشتیبان در اجرای بعدی همان خروجی را تولید کند، فایل ها این کار را خواهند کرد
به سختی با موارد قبلی پیوند داده شود، و فضای دیسک اضافی وجود نخواهد داشت
گرفته شده است.
backup_exec SSH [ایمیل محافظت شده] "دو -ش /.offsite_backup"
اختیاری/ backup_exec rsync -az /.snapshots/daily.0
[ایمیل محافظت شده]:/.offsite_backup/ ضروری/ backup_exec /bin/true/
backup_exec به سادگی دستور لیست شده را اجرا می کند. استدلال دوم اینطور نیست
مورد نیاز است و مقدار «اختیاری» را پیشفرض میکند. اهمیت را مشخص می کند
که دستور 0 را برمی گرداند. مقادیر معتبر 'اختیاری' و 'ضروری' هستند. اگر
فرمان به عنوان اختیاری مشخص می شود، وضعیت خروج غیر صفر از دستور خواهد بود
منجر به خروجی یک پیام هشدار می شود. اگر دستور به صورت مشخص شده باشد
'ضروری'، وضعیت خروج غیر صفر از دستور منجر به خطا می شود
پیام در حال خروجی و خود rsnapshot با خروجی غیر صفر خارج می شود
وضعیت.
به یاد داشته باشید که برگه ها باید همه عناصر را از هم جدا کنند و باید یک اسلش انتهایی وجود داشته باشد
در انتهای هر دایرکتوری
یک علامت هش (#) در ابتدای یک خط به عنوان یک نظر در نظر گرفته می شود.
جمع کردن همه آن ها (یک فایل نمونه):
# این یک نظر است، به یاد داشته باشید که برگه ها باید همه عناصر را از هم جدا کنند
config_version 1.2
snapshot_root /.snapshots/
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
#cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
linux_lvm_cmd_lvcreate /sbin/lvcreate
linux_lvm_cmd_lvremove /sbin/lvremove
linux_lvm_cmd_mount /bin/mount
linux_lvm_cmd_umount /bin/umount
linux_lvm_snapshotsize 2G
linux_lvm_snapshotname rsnapshot
linux_lvm_vgpath / توسعه
linux_lvm_mountpath /mnt/lvm-snapshot
حفظ آلفا 6
بتا 7 را حفظ کنید
حفظ گاما 7
حفظ دلتا 3
پشتیبان /و غیره/ لوکال هاست/
پشتیبان / خانه / لوکال هاست/
backup_script /usr/local/bin/backup_mysql.sh mysql_backup/
پشتیبان [ایمیل محافظت شده]:/و غیره/ foo.com/
پشتیبان [ایمیل محافظت شده]:/ خانه / foo.com/
پشتیبان [ایمیل محافظت شده]:/ خانه / mail.foo.com/
پشتیبان گیری rsync://example.com/pub/ example.com/pub/
پشتیبان گیری lvm://vg0/xen-home/ lvm-vg0/xen-home/
backup_exec echo "پشتیبان گیری به پایان رسید!"
طریقه استفاده
rsnapshot می تواند توسط هر کاربری استفاده شود، اما برای پشتیبان گیری در سراسر سیستم احتمالاً مایل به استفاده از آن هستید
آن را به صورت روت اجرا کنید.
از آنجایی که معمولاً در صورت نیاز به مداخله انسانی، پشتیبانگیری نادیده گرفته میشود، راه ارجح است
اجرای آن از cron است.
هنگامی که برای اولین بار نسخه های پشتیبان خود را تنظیم می کنید، احتمالاً می خواهید آن را از طریق هم اجرا کنید
خط فرمان یک یا دو بار تا احساس کنید چه کاری انجام می دهد.
در اینجا یک نمونه ورودی crontab با فرض سطوح پشتیبان آورده شده است آلفا, بتا, گاما و دلتا
در تعریف شده اند /etc/rsnapshot.conf
0 * / 4 * * * /usr/bin/rsnapshot آلفا
50 23 * * * /usr/bin/rsnapshot بتا
40 23 * * 6 /usr/bin/rsnapshot گاما
30 23 1 * * /usr/bin/rsnapshot دلتا
این مثال موارد زیر را انجام خواهد داد:
6 نسخه پشتیبان آلفا در روز (هر 4 ساعت یک بار در 0,4,8,12,16,20)
1 نسخه پشتیبان بتا هر روز، ساعت 11:50 شب
1 نسخه پشتیبان گاما هر هفته، در ساعت 11:40، شنبه ها (روز ششم هفته)
1 نسخه پشتیبان دلتا هر ماه، ساعت 11:30 روز اول ماه
معمولاً ایده خوبی است که سطوح پشتیبان بزرگتر را برای اجرا کمی قبل از آن برنامه ریزی کنید
پایین ترها به عنوان مثال، در crontab بالا، توجه کنید که "بتا" 10 دقیقه قبل اجرا می شود
"آلفا". دلیل اصلی این امر این است که چرخش بتا قدیمی ترین آلفا را بیرون می کشد
و آن را جوانترین بتا کنید (به این معنی که چرخش آلفای بعدی نیازی به این کار نخواهد داشت
قدیمی ترین آلفا را حذف کنید، که کارآمدتر است. یک دلیل ثانویه این است که هست
پیشبینی اینکه کمترین سطح پشتیبان چقدر طول میکشد سختتر است، زیرا در واقع به این کار نیاز دارد
یک rsync از منبع و همچنین چرخشی که همه پشتیبانها انجام میدهند انجام دهید.
اگر rsnapshot بیش از 10 دقیقه طول بکشد تا چرخش "بتا" انجام شود (که معمولاً شامل
حذف قدیمیترین عکس فوری بتا)، سپس باید زمان بین پشتیبانگیری را افزایش دهید
سطوح در غیر این صورت (با فرض اینکه شما تنظیم کرده اید فایل قفل پارامتر، همانطور که توصیه می شود) شما
عکس فوری آلفا گاهی اوقات خراب می شود زیرا بتا هنوز قفل دارد.
به یاد داشته باشید که این فقط زمان هایی است که برنامه اجرا می شود. برای تنظیم تعداد
پشتیبان های ذخیره شده، تنظیم کنید نگه داشتن اعداد در /etc/rsnapshot.conf
برای بررسی فضای دیسک مورد استفاده توسط rsnapshot، می توانید آن را با آرگومان "du" فراخوانی کنید.
مثلا:
rsnapshot du
این دقیقاً به شما نشان می دهد که چقدر فضای دیسک در ریشه اسنپ شات اشغال شده است. این
ویژگی به یونیکس نیاز دارد du دستور بر روی سیستم شما نصب شود تا از آن پشتیبانی کند
آرگومان های خط فرمان "-csh" و قرار گرفتن در مسیر شما. شما همچنین می توانید مسیر خود را نادیده بگیرید
تنظیمات و پرچم ها با استفاده از پارامترهای cmd_du و du_args به du منتقل می شوند.
همچنین می توان یک مسیر فایل نسبی را به عنوان آرگومان دوم برای دریافت گزارش ارسال کرد
یک فایل یا زیر شاخه خاص
rsnapshot du لوکال هاست/خانه/
نسخه گنو "du" ترجیح داده می شود. نسخه BSD نیز به خوبی کار می کند، اما اینطور نیست
از پرچم -h پشتیبانی کنید (به جای آن از -k استفاده کنید تا مجموع ها را به کیلوبایت ببینید). نسخه های دیگر از
"du"، مانند سولاریس، ممکن است اصلا کار نکند.
برای بررسی تفاوت بین دو دایرکتوری، rsnapshot را با آرگومان "diff" فراخوانی کنید.
به دنبال آن دو سطح پشتیبان یا مسیر دایرکتوری وجود دارد.
مثلا:
rsnapshot تفاوت بتا.0 بتا.1
rsnapshot تفاوت beta.0/localhost/etc beta.1/localhost/etc
rsnapshot تفاوت /.snapshots/beta.0 /.snapshots/beta.1
این برنامه rsnapshot-diff را فراخوانی می کند، که هر دو دایرکتوری را که به دنبال آن هستند اسکن می کند
تفاوت ها (بر اساس لینک های سخت).
rsnapshot همگام
چه زمانی sync_first فعال است، rsnapshot ابتدا باید با فراخوانی شود همگام بحث و جدل،
به دنبال آن سایر ورودی های cron معمولی قرار می گیرند. همگام سازی باید به عنوان کمترین، بیشترین اتفاق بیفتد
سطح پشتیبان گیری مکرر و درست قبل از آن. مثلا:
0 * / 4 * * * /usr/bin/rsnapshot همگام && /usr/bin/rsnapshot آلفا
50 23 * * * /usr/bin/rsnapshot بتا
40 23 1,8,15,22 * * /usr/bin/rsnapshot گاما
30 23 1 * * /usr/bin/rsnapshot دلتا
عملیات همگام سازی به سادگی rsync و تمام اسکریپت های پشتیبان را اجرا می کند. در این سناریو، همه
تماس ها به سادگی دایرکتوری ها را می چرخانند، حتی پایین ترین سطح پشتیبان.
rsnapshot همگام [دسترس]
چه زمانی sync_first فعال است، تمام رفتار همگامسازی در طول یک مرحله همگامسازی اضافی اتفاق میافتد
(به بالا نگاه کن). هنگام استفاده از آرگومان همگام سازی، امکان تعیین یک نسخه پشتیبان نیز وجود دارد
نقطه مقصد به عنوان یک پارامتر اختیاری. اگر این کار انجام شد، فقط نقاط پشتیبان
اشتراک گذاری آن مسیر مقصد همگام سازی خواهد شد.
برای مثال، فرض کنید که example.com یک مسیر مقصد است که توسط یک یا چند نفر به اشتراک گذاشته شده است
نقاط پشتیبان شما
rsnapshot sync example.com
این دستور فقط فایل هایی را که معمولاً از آنها نسخه پشتیبان تهیه می شود با example.com همگام می کند.
هیچ نقطه پشتیبان دیگری با مقادیر کمی متفاوت دریافت نخواهد کرد (مانند
برای مثال example.com/etc/). برای همگام سازی example.com/etc، باید این کار را انجام دهید
rsnapshot را دوباره با استفاده از example.com/etc به عنوان پارامتر اختیاری اجرا کنید.
rsnapshot پیکربندی
یک بررسی سریع سلامت عقل انجام دهید تا مطمئن شوید همه چیز آماده است.
خروج ارزش
0 تمام عملیات با موفقیت انجام شد
1 یک خطای مرگبار رخ داد
2 برخی از اخطارها رخ داد، اما نسخه پشتیبان همچنان به پایان رسید
با استفاده از خدمات onworks.net از rsnapshot به صورت آنلاین استفاده کنید