.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "rsnapshot 1" .TH rsnapshot 1 2025-02-02 rsnapshot-tools rsnapshot-tools .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" rsnapshot \- ابزار تهیه تصویر لحظه‌ای از فایل‌سیستم راه دور .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBrsnapshot\fR [\fB\-vtxqVD\fR] [\fB\-c\fR cfgfile] [command] [args] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBrsnapshot\fR ابزاری برای تهیه تصویر لحظه‌ای (اسنپ‌شات) از فایل‌سیستم است. این ابزار می‌تواند برای هر تعداد ماشین، از فایل‌سیستم‌های محلی و دوردست نسخه‌های پشتیبان افزایشی تهیه کند. .PP تصویربرداری از فایل‌سیستم‌های محلی توسط \fBrsync\fR\|(1) مدیریت می‌شود. اتصالات امن راه دور از طریق rsync بر بستر \fBssh\fR\|(1) انجام می‌پذیرد، در حالی که اتصالات ناشناس rsync صرفاً از یک سرور rsync استفاده می‌کنند. هر دو نوع انتقال محلی و راه دور به rsync وابسته هستند. .PP \&\fBrsnapshot\fR بسیار بیشتر از آنچه تصور کنید در فضای دیسک صرفه‌جویی می‌کند. میزان فضای مورد نیاز تقریباً معادل حجم یک نسخه پشتیبان کامل، به همراه یک نسخه از هر فایل دیگری است که تغییر کرده باشد. \fBrsnapshot\fR استفاده گسترده‌ای از پیوندهای سخت (hard links) می‌کند؛ بنابراین اگر فایلی تغییر نکرده باشد، اسنپ‌شات بعدی صرفاً یک پیوند سخت به همان فایل دقیق خواهد بود. .PP \&\fBrsnapshot\fR معمولاً به عنوان کاربر ریشه (root) توسط یک کار cron یا مجموعه‌ای از کارهای cron فراخوانی می‌شود. با این حال، اجرای آن به عنوان هر کاربر دلخواه دیگری به همراه یک فایل پیکربندی جایگزین نیز امکان‌پذیر است. .PP تمام گزینه‌های مهم در یک فایل پیکربندی مشخص می‌شوند که به طور پیش‌فرض در مسیر \fI/etc/rsnapshot.conf\fR قرار دارد. می‌توان یک فایل جایگزین را از طریق خط فرمان تعیین کرد. همچنین گزینه‌های اضافی دیگری وجود دارند که امکان ارسال آن‌ها از طریق خط فرمان فراهم است. .PP گزینه‌های خط فرمان به شرح زیر هستند: .Sp .RS 4 \&\fB\-v\fR پرگویی (verbose)، نمایش دستورات شل در حال اجرا .Sp \&\fB\-t\fR آزمایش (test)، نمایش دستورات شلی که قرار است اجرا شوند .Sp \&\fB\-c\fR مسیر فایل پیکربندی جایگزین .Sp \&\fB\-x\fR یک فایل‌سیستم واحد، عدم عبور از مرز پارتیشن‌ها در هر نقطه پشتیبان‌گیری .Sp \&\fB\-q\fR بی‌صدا (quiet)، نادیده‌گرفتن هشدارهای غیربحرانی .Sp \&\fB\-V\fR مشابه \-v، اما با جزئیات بیشتر .Sp \&\fB\-D\fR جریانی انبوه از اطلاعات عیب‌یابی و تشخیصی .RE.SH "پیکربندی (CONFIGURATION)" .IX Header "CONFIGURATION" \&\fI/etc/rsnapshot.conf\fR فایل پیکربندی پیش‌فرض است. تمام پارامترها در این فایل باید با تب (tab) از یکدیگر جدا شوند. \fI/etc/rsnapshot.conf.default\fR می‌تواند به عنوان یک مرجع مورد استفاده قرار گیرد. .PP توصیه می‌شود که \fI/etc/rsnapshot.conf.default\fR را به \&\fI/etc/rsnapshot.conf\fR رونوشت کنید و سپس \fI/etc/rsnapshot.conf\fR را بر اساس نیازهای خود تغییر دهید. .PP خطوط طولانی را می‌توان به چند خط تقسیم کرد. خطوط «ادامه» (Continuation) \&\fBباید\fR با یک نویسه فاصله (space) یا تب (tab) شروع شوند. خطوط ادامه هنگام پردازش فایل پیکربندی، تمام فاصله‌های ابتدا و انتهای آن‌ها حذف شده و سپس با یک نویسه تب واسط به خط قبلی ضمیمه می‌شوند. .PP در اینجا فهرستی از پارامترهای مجاز آورده شده است: .Sp .RS 4 \&\fBconfig_version\fR نسخه فایل پیکربندی (الزامی). مقدار پیش‌فرض 1.2 است .Sp \&\fBsnapshot_root\fR مسیر فایل‌سیستم محلی برای ذخیره تمام اسنپ‌شات‌ها .Sp \&\fBinclude_conf\fR شامل کردن فایلی دیگر در پیکربندی در این نقطه. .Sp .RS 4 این کار بازگشتی است، اما هنگام مشخص کردن فایلی که باید گنجانده شود ممکن است لازم باشد درباره مسیرها احتیاط کنید. بررسی می‌شود که آیا فایل مشخص‌شده خواندنی است یا خیر، و در غیر این صورت با خطا اعلام خواهد شد. ما استفاده از یک مسیر کامل را توصیه می‌کنیم. به عنوان یک حالت خاص، مقدار include_conf می‌تواند درون `بک‌تیک` قرار گیرد که در این صورت اجرا خواهد شد و هر خروجی‌ای که به STDOUT بفرستد در پیکربندی گنجانده می‌شود. توجه داشته باشید که فرانویسه‌های شل ممکن است تفسیر شوند. .RE .RE .RS 4 .Sp \&\fBno_create_root\fR اگر روی 1 تنظیم شود، rsnapshot دایرکتوری \fBsnapshot_root\fR را ایجاد نخواهد کرد .Sp \&\fBcmd_rsync\fR مسیر کامل به \f(CW\*(C`rsync\*(C'\fR (الزامی) .Sp \&\fBcmd_ssh\fR مسیر کامل به \f(CW\*(C`ssh\*(C'\fR (اختیاری) .Sp \&\fBcmd_cp\fR مسیر کامل به \f(CW\*(C`cp\*(C'\fR (اختیاری، اما باید نسخه GNU باشد) .Sp .RS 4 اگر از لینوکس استفاده می‌کنید، باید cmd_cp را از حالت کامنت خارج کنید. اگر از بستری استفاده می‌کنید که فاقد GNU cp است، باید بگذارید cmd_cp به صورت کامنت‌شده باقی بماند. .Sp با GNU cp، برنامه rsnapshot می‌تواند هم از فایل‌های عادی و هم از فایل‌های خاص (مانند FIFOها، سوکت‌ها، و دستگاه‌های بلوکی/نویسه‌ای) در یک مرحله پشتیبان‌گیری کند. .Sp اگر cmd_cp غیرفعال باشد، rsnapshot از تابع توکار خودش، یعنی \&\fBnative_cp_al()\fR برای پشتیبان‌گیری از فایل‌ها و دایرکتوری‌های عادی استفاده خواهد کرد. سپس این عمل با یک فراخوانی جداگانه به rsync برای انتقال فایل‌های خاص (در صورت وجود) دنبال می‌شود. .RE .RE .RS 4 .Sp \&\fBcmd_rm\fR مسیر کامل به \f(CW\*(C`rm\*(C'\fR (اختیاری) .Sp \&\fBcmd_logger\fR مسیر کامل به \f(CW\*(C`logger\*(C'\fR (اختیاری، برای پشتیبانی از syslog) .Sp \&\fBcmd_du\fR مسیر کامل به \f(CW\*(C`du\*(C'\fR (اختیاری، برای گزارش‌های استفاده از دیسک) .Sp \&\fBcmd_rsnapshot_diff\fR مسیر کامل به \f(CW\*(C`rsnapshot\-diff\*(C'\fR (اختیاری) .Sp \&\fBcmd_preexec\fR .Sp .RS 4 مسیر کامل (به همراه هرگونه آرگومان) به اسکریپت preexec (اختیاری). این اسکریپت بلافاصله قبل از هر عملیات پشتیبان‌گیری (اما نه چرخش‌ها) اجرا خواهد شد. در صورت شکست در اجرا، rsnapshot بلافاصله متوقف می‌شود. .RE .RE .RS 4 .Sp \&\fBcmd_postexec\fR .Sp .RS 4 مسیر کامل (به همراه هرگونه آرگومان) به اسکریپت postexec (اختیاری). این اسکریپت بلافاصله بعد از هر عملیات پشتیبان‌گیری (اما نه چرخش‌ها) اجرا خواهد شد. در صورت شکست در اجرا، rsnapshot بلافاصله متوقف می‌شود. .RE .RE .RS 4 .Sp \&\fBlinux_lvm_cmd_lvcreate\fR .Sp \&\fBlinux_lvm_cmd_lvremove\fR .Sp \&\fBlinux_lvm_cmd_mount\fR .Sp \&\fBlinux_lvm_cmd_umount\fR .Sp .RS 4 مسیرهای دستورات lvcreate، lvremove، mount و umount، برای استفاده با LVMهای لینوکس. همچنین می‌توانید گزینه‌هایی را نیز برای این دستورات در نظر بگیرید. دستورات lvcreate، lvremove، mount و umount برای مدیریت اسنپ‌شات‌های حجم‌های LVM الزامی هستند و در غیر این صورت اختیاری می‌باشند. .RE .RE .RS 4 .Sp \&\fBretain\fR [name] [number] .Sp .RS 4 مقدار «name» به نام این سطح پشتیبان‌گیری اشاره دارد (به عنوان مثال، alpha، beta، که همچنین «interval» یا بازه زمانی نامیده می‌شود). مقدار «number» تعداد اسنپ‌شات‌هایی است که برای این نوع بازه نگهداری خواهند شد. مقدار «name» دستوری خواهد بود که برای انجام این نوع پشتیبان‌گیری به \fBrsnapshot\fR داده می‌شود. .Sp یک نام مستعار منسوخ‌شده برای 'retain' عبارت 'interval' است. .Sp مثال: \fBretain alpha 6\fR .Sp [root@localhost]# \fBrsnapshot alpha\fR .Sp برای این مثال، هر بار که این دستور اجرا شود، موارد زیر رخ خواهد داد: .Sp مسیر /alpha.5/ در صورت وجود، حذف خواهد شد. .Sp پوشه‌های /alpha.{1,2,3,4} همگی، در صورت وجود، به میزان +1 می‌چرخند (rotate می‌شوند). .Sp پوشه /alpha.0/ با استفاده از پیوندهای سخت (hard links) به /alpha.1/ رونوشت می‌شود. .Sp سپس هر نقطه پشتیبان‌گیری (که در ادامه توضیح داده شده است) با دایرکتوری‌های متناظر در /alpha.0/ همگام‌سازی (rsync) خواهد شد. .Sp سطوح پشتیبان‌گیری باید به ترتیب در فایل پیکربندی مشخص شوند، از بیشترین بسامد به کمترین بسامد. مدخل اول، موردی است که با نقاط پشتیبان‌گیری همگام‌سازی می‌شود. سطوح پشتیبان‌گیری بعدی (مانند beta، gamma و غیره) صرفاً می‌چرخند، و هر سطح بالاتر برای دایرکتوری .0 خود اطلاعات را از سطح پایین‌تر از خود می‌کشد. .Sp مثال: .Sp .RS 4 \&\fBretain alpha 6\fR .Sp \&\fBretain beta 7\fR .Sp \&\fBretain gamma 4\fR .RE .RE .RS 4 .Sp پوشه beta.0/ از alpha.5/ منتقل خواهد شد، و gamma.0/ از beta.6/ منتقل می‌شود. .Sp پوشه alpha.0/ مستقیماً از فایل‌سیستم همگام‌سازی (rsync) خواهد شد. .RE .RE .RS 4 .Sp \&\fBlink_dest 1\fR .Sp .RS 4 اگر نسخه rsync شما از \-\-link\-dest پشتیبانی می‌کند (نسخه 2.5.7 یا جدیدتر)، می‌توانید این گزینه را فعال کنید تا به rsync اجازه داده شود اموری را مدیریت کند که در غیر این صورت توسط GNU cp یا زیرروال‌های توکار انجام می‌شد. فعال کردن این گزینه باعث می‌شود rsnapshot یک شاخه کد کمی پیچیده‌تر را دنبال کند، اما بهترین روش برای پشتیبانی از فایل‌های خاص روی سیستم‌های غیرلینوکسی است. .RE .RE .RS 4 .Sp \&\fBsync_first 1\fR .Sp .RS 4 گزینه sync_first رفتار rsnapshot را تغییر می‌دهد. هنگامی که این گزینه فعال باشد، تمام فراخوانی‌های rsnapshot با سطوح مختلف پشتیبان‌گیری، صرفاً فایل‌ها را می‌چرخانند. تمام پشتیبان‌گیری‌ها با فراخوانی rsnapshot به همراه آرگومان «sync» انجام می‌شوند. فایل‌های همگام‌سازی‌شده در دایرکتوری «.sync» در زیر snapshot_root ذخیره می‌شوند. .Sp این قابلیت باعث بازیابی بهتر در حالتی می‌شود که فرایند rsnapshot در میانه یک عملیات همگام‌سازی متوقف شود، چرا که مرحله همگام‌سازی و مراحل چرخش از یکدیگر تفکیک شده‌اند. این بدین معنا نیز هست که می‌توانید به سادگی «rsnapshot sync» را در خط فرمان اجرا کنید بدون اینکه نگران چرخش اجباری تمام دایرکتوری‌های دیگر به سمت بالا باشید. این مزیت به قیمت مصرف فضای دیسک به اندازه یک اسنپ‌شات اضافه تمام می‌شود. مقدار پیش‌فرض 0 (خاموش) است. .RE .RE .RS 4 .Sp \&\fBverbose 2\fR .Sp .RS 4 میزان اطلاعاتی که هنگام اجرای برنامه در خروجی چاپ می‌شود. مقادیر مجاز از 1 تا 5 هستند. مقدار پیش‌فرض 2 است. .Sp.Vb 5 \& 1 Quiet فقط نمایش خطاهای مهلک \& 2 Default نمایش هشدارها و خطاها \& 3 Verbose نمایش دستورهای معادل شل در حال اجرا \& 4 Extra Verbose مشابه Verbose، اما با جزئیات بیشتر \& 5 Debug انواع و اقسام اطلاعات .Ve .RE .RE .RS 4 .Sp \&\fBloglevel 3\fR .Sp .RS 4 این عدد همان مفهوم \fBverbose\fR در بالا را دارد، اما تعیین می‌کند که در صورت فعال بودن فایل لاگ، چه مقدار داده در آن ثبت شود. .RE .RE .RS 4 .Sp \&\fBlogfile /var/log/rsnapshot\fR .Sp .RS 4 مسیر کامل سیستم‌فایل به فایل لاگ rsnapshot. اگر این گزینه تعریف شود، یک فایل لاگ نوشته خواهد شد که حجم داده‌های آن توسط \fBloglevel\fR کنترل می‌شود. اگر این گزینه کامنت (غیرفعال) شود، هیچ فایل لاگی نوشته نخواهد شد. .RE .RE .RS 4 .Sp \&\fBinclude [file\-name\-pattern]\fR .Sp .RS 4 این مقدار با استفاده از دستورالعمل \-\-include مستقیماً به rsync ارسال می‌شود. این پارامتر می‌تواند به تعداد دفعات مورد نیاز مشخص شود، به‌طوری که در هر خط یک الگو تعریف گردد. برای اطلاع از نحو، به صفحه راهنمای \fBrsync\fR\|(1) مراجعه کنید. .RE .RE .RS 4 .Sp \&\fBexclude [file\-name\-pattern]\fR .Sp .RS 4 این مقدار با استفاده از دستورالعمل \-\-exclude مستقیماً به rsync ارسال می‌شود. این پارامتر می‌تواند به تعداد دفعات مورد نیاز مشخص شود، به‌طوری که در هر خط یک الگو تعریف گردد. برای اطلاع از نحو، به صفحه راهنمای \fBrsync\fR\|(1) مراجعه کنید. .RE .RE .RS 4 .Sp \&\fBinclude_file /path/to/include/file\fR .Sp .RS 4 این مقدار با استفاده از دستورالعمل \-\-include\-from مستقیماً به rsync ارسال می‌شود. برای اطلاع از نحو، به صفحه راهنمای \fBrsync\fR\|(1) مراجعه کنید. .RE .RE .RS 4 .Sp \&\fBexclude_file /path/to/exclude/file\fR .Sp .RS 4 این مقدار با استفاده از دستورالعمل \-\-exclude\-from مستقیماً به rsync ارسال می‌شود. برای اطلاع از نحو، به صفحه راهنمای \fBrsync\fR\|(1) مراجعه کنید. .RE .RE .RS 4 .Sp \&\fBrsync_short_args \-a\fR .Sp .RS 4 فهرستی از آرگومان‌های کوتاه برای ارسال به rsync. در صورت مشخص نشدن، «\-a» پیش‌فرض است. لطفاً توجه داشته باشید که این آرگومان‌ها باید همگی در کنار یکدیگر قرار گیرند. برای مثال، «\-az» معتبر است، در حالی که «\-a \-z» معتبر نیست. .Sp گزینه «\-a» همان حالت آرشیو («archive mode») در rsync است که به آن اعلام می‌کند تا حد امکان فراداده‌های سیستم‌فایل را برای هر فایل رونوشت کند. این گزینه به‌طور خاص شامل اطلاعات مربوط به پیوندهای سخت (hard links) *نمی‌شود*، چرا که این کار مصرف حافظه rsync را به‌شدت افزایش داده و سرعت آن را کم می‌کند. اگر نیاز به حفظ پیوندهای سخت در پشتیبان‌های خود دارید، «H» را به این گزینه اضافه کنید. .RE .RE .RS 4 .Sp \&\fBrsync_long_args \-\-delete \-\-numeric\-ids \-\-relative \-\-delete\-excluded\fR .Sp .RS 4 فهرست آرگومان‌های بلند برای ارسال به rsync. مقادیر پیش‌فرض عبارتند از: \-\-delete \-\-numeric\-ids \-\-relative \-\-delete\-excluded این بدان معناست که ساختار دایرکتوری در مقصد هر نقطه پشتیبان‌گیری، با ساختار موجود در مبدأ نقطه پشتیبان‌گیری مطابقت خواهد داشت. .Sp استفاده از نقل‌قول‌ها در \fBrsync_long_args\fR مجاز است، مانند \f(CW\*(C`\-\-rsync\-path=\*(Aqsudo /usr/bin/rsync\*(Aq\*(C'\fR. می‌توانید از نقل‌قول تکی (\(aq) یا جفتی (") استفاده کنید، اما نقل‌قول‌های تودرتو (شامل نقل‌قول‌های تودرتوی ترکیبی) مجاز نیستند. نقل‌قول مشابه در \fBrsync_long_args\fR به ازای هر نقطه پشتیبان‌گیری نیز مجاز است. .RE .RE .RS 4 .Sp \&\fBrsync_numtries 0\fR .Sp .RS 4 تعداد دفعات تلاش مجدد برای اجرای rsync به ازای هر مبدأ پشتیبان‌گیری مشخص‌شده. هر زمان که عملیات rsync برای یک مبدأ با یک کد وضعیت خروج غیرصفر به پایان برسد، rsnapshot این عملیات را تکرار می‌کند تا زمانی که تعداد دفعات پیکربندی‌شده در «rsync_numtries» برآورده شود یا rsync با موفقیت به پایان برسد. به‌طور پیش‌فرض هیچ تلاشی برای تکرار انجام نمی‌شود («rsync_numtries 0»). .RE .RE .RS 4 .Sp \&\fBrsync_wait_between_tries 0\fR .Sp .RS 4 مدت‌زمان انتظار بین تلاش‌ها بر حسب ثانیه. مدت‌زمانی را که باید بین تلاش‌های مجدد عملیات rsync منتظر ماند، بر حسب ثانیه مشخص کنید. تعداد تلاش‌های مجدد باید در rsync_numtries تعریف شده باشد. زمان انتظار پیش‌فرض 0 ثانیه است. .RE .RE .RS 4 .Sp \&\fBssh_args \-p 22\fR .Sp .RS 4 آرگومان‌هایی که باید به ssh ارسال شوند. در صورت مشخص نشدن، مقدار پیش‌فرض هیچ است. .RE .RE .RS 4 .Sp \&\fBdu_args \-csh\fR .Sp .RS 4 آرگومان‌هایی که باید به du ارسال شوند. در صورت مشخص نشدن، مقدار پیش‌فرض \-csh است. نسخه GNU ابزار du از \-csh پشتیبانی می‌کند، نسخه BSD ابزار du از \-csk پشتیبانی می‌کند و Solaris du اصلاً از \&\-c پشتیبانی نمی‌کند. نسخه GNU توصیه می‌شود، چرا که بیشترین امکانات را فراهم می‌کند. .RE .RE .RS 4 .Sp \&\fBlockfile /var/run/rsnapshot.pid\fR .Sp \&\fBstop_on_stale_lockfile 0\fR .Sp .RS 4 فایل قفلی که هنگام اجرای rsnapshot استفاده می‌شود. این کار از تداخل و آسیب زدن اجرای دوم به اجرای اول جلوگیری می‌کند. در صورت مشخص نشدن، از هیچ فایل قفلی استفاده نمی‌شود. به دلایل امنیتی اطمینان حاصل کنید که از دایرکتوری‌ای استفاده می‌کنید که برای همگان قابل نوشتن نباشد. استفاده از فایل قفل قویاً توصیه می‌شود. .Sp اگر هنگام شروع rsnapshot یک فایل قفل وجود داشته باشد، برنامه تلاش می‌کند آن فایل را بخواند و اگر نتواند، با یک خطا متوقف می‌شود. اگر *بتواند* فایل را بخواند، بررسی می‌کند که آیا فرآیندی با شناسه PID درج‌شده در فایل وجود دارد یا خیر. اگر وجود داشته باشد، rsnapshot با یک پیام خطا متوقف می‌شود. اگر هیچ فرآیندی با آن PID وجود نداشته باشد، فرض می‌کنیم فایل قفل کهنه (stale) است و آن را نادیده می‌گیریم، *مگر اینکه* stop_on_stale_lockfile برابر 1 تنظیم شده باشد که در این صورت برنامه متوقف می‌شود. .Sp مقدار پیش‌فرض stop_on_stale_lockfile برابر 0 است. .RE .RE .RS 4 .Sp \&\fBone_fs 1\fR .Sp .RS 4 از عبور rsync از پارتیشن‌های سیستم‌فایل جلوگیری می‌کند. تنظیم این گزینه به مقدار 1 این ویژگی را فعال می‌کند. مقدار 0 آن را غیرفعال می‌سازد. این پارامتر اختیاری است. پیش‌فرض 0 (خاموش) است. .RE .RE .RS 4 .Sp \&\fBuse_lazy_deletes 1\fR .Sp .RS 4 رفتار پیش‌فرض rsnapshot را تغییر داده و در ابتدا قدیمی‌ترین اسنپ‌شات را حذف نمی‌کند. در عوض آن دایرکتوری را به _delete.[processid] منتقل کرده و کار را به‌طور عادی ادامه می‌دهد. پس از تکمیل نسخه پشتیبان، فایل قفل پیش از شروع فرآیند حذف دایرکتوری توسط rsnapshot، برداشته خواهد شد. .Sp فعال کردن این گزینه به این معنی است که اسنپ‌شات‌ها زودتر گرفته می‌شوند (چرا که حذف در ابتدا انجام نمی‌شود) و به سایر فرآیندهای rsnapshot اجازه داده می‌شود در حین انجام حذف نهایی شروع به کار کنند. این مزیت به قیمت مصرف فضای دیسک بیشتر تمام می‌شود. پیش‌فرض 0 (خاموش) است. .Sp جزئیات نحوه عملکرد این ویژگی در rsnapshot نسخه 1.3.1 تغییر کرده است. در ابتدا در هر سطح پشتیبان‌گیری تنها می‌توانستید یک دایرکتوری .delete داشته باشید. اکنون می‌توانید چندین مورد داشته باشید، بنابراین اگر پشتیبان‌گیری بعدی شما (برای مثال alpha) در حالی آغاز شود که قبلی هنوز در حال انجام حذف تنبل (lazy delete) است، ممکن است موقتاً دایرکتوری‌های _delete اضافی باقی مانده باشند. .RE .RE .RS 4 .Sp \&\fBlinux_lvm_snapshotsize 2G\fR .Sp .RS 4 اندازه اسنپ‌شات(های) LVM (گزینه \-\-size در lvcreate). .RE .RE .RS 4 .Sp \&\fBlinux_lvm_snapshotname rsnapshot\fR .Sp .RS 4 نام مورد استفاده هنگام ایجاد اسنپ‌شات(های) حجم منطقی LVM (گزینه \-\-name در lvcreate). .RE .RE .RS 4 .Sp \&\fBlinux_lvm_vgpath /dev\fR .Sp .RS 4 مسیر به گروه‌های حجمی LVM (Volume Groups). .RE .RE .RS 4 .Sp \&\fBlinux_lvm_mountpath /mnt/lvm\-snapshot\fR .Sp .RS 4 نقطه اتصالی که برای سوار کردن موقت اسنپ‌شات(ها) استفاده می‌شود. .RE .RE .RS 4 .Sp \&\fBbackup\fR /etc/ localhost/ .Sp \&\fBbackup\fR root@example.com:/etc/ example.com/ .Sp \&\fBbackup\fR rsync://example.com/path2/ example.com/ .Sp \&\fBbackup\fR /var/ localhost/ one_fs=1 .Sp \&\fBbackup\fR lvm://vg0/home/path2/ lvm\-vg0/ .Sp \&\fBbackup_script\fR /usr/local/bin/backup_pgsql.sh pgsql_backup/ .Sp .RS 4 مثال‌ها: .Sp \&\fBbackup /etc/ localhost/\fR .Sp .RS 4 پشتیبان‌گیری از /etc/ در /.0/localhost/etc/ با استفاده از rsync روی سیستم‌فایل محلی .RE .RE.RS 4 .Sp \&\fBbackup /usr/local/ localhost/\fR .Sp .RS 4 از مسیر /usr/local/ با استفاده از rsync بر روی فایل‌سیستم محلی در /.0/localhost/usr/local/ پشتیبان تهیه می‌کند .RE .RE .RS 4 .Sp \&\fBbackup root@example.com:/etc/ example.com/\fR .Sp .RS 4 از مسیر root@example.com:/etc/ با استفاده از rsync از طریق ssh در /.0/example.com/etc/ پشتیبان تهیه می‌کند .RE .RE .RS 4 .Sp \&\fBbackup example.com:/etc/ example.com/\fR .Sp .RS 4 مشابه مورد قبل است اما به ssh اجازه می‌دهد نام‌کاربری دوردست را تعیین کند (همان‌طور که در ~/.ssh/config مشخص شده است، در غیر این صورت مشابه نام‌کاربری محلی خواهد بود) .RE .RE .RS 4 .Sp \&\fBbackup root@example.com:/usr/local/ example.com/\fR .Sp .RS 4 از مسیر root@example.com:/usr/local/ با استفاده از rsync از طریق ssh در /.0/example.com/usr/local/ پشتیبان تهیه می‌کند .RE .RE .RS 4 .Sp \&\fBbackup rsync://example.com/pub/ example.com/pub/\fR .Sp .RS 4 از مسیر rsync://example.com/pub/ با استفاده از یک کارساز ناشناس rsync در /.0/example.com/pub/ پشتیبان می‌گیرد. لطفاً توجه داشته باشید که برعکس پشتیبان‌گیری از مسیرهای محلی و استفاده از rsync از طریق ssh، کارسازهای rsync دارای «ماژول‌ها» هستند، که دایرکتوری‌های سطح بالایی بوده و صادر (export) می‌شوند. بنابراین، ماژول باید در مسیر مقصد نیز مشخص شود، همان‌طور که در مثال بالا نشان داده شده است (دایرکتوری pub/ در انتها). .RE .RE .RS 4 .Sp \&\fBbackup /var/ localhost/ one_fs=1\fR .Sp .RS 4 این مورد مشابه مثال‌های دیگر است، اما به ستون چهارم توجه کنید. به این صورت می‌توانید گزینه‌های مربوط به هر نقطهٔ پشتیبان‌گیری را برای بازنویسی تنظیمات سراسری مشخص کنید. این پارامتر اضافی می‌تواند چندین گزینه را بپذیرد که با \fBکاما\fR از یکدیگر جدا می‌شوند. .Sp این قابلیت بیش از همه هنگام تعیین موارد استثنا (excludes) در rsync به ازای هر پشتیبان کاربرد دارد، بدین صورت: .Sp \&\fBbackup root@somehost:/ somehost +rsync_long_args=\-\-exclude=/var/spool/\fR .Sp به علامت + توجه کنید. این علامت به rsync_long_args اعلام می‌کند که به جای جایگزین کردن کل فهرست، آرگومان‌ها را به فهرست آرگومان‌های ارسالی به rsync \fIاضافه کند\fR. علامت + تنها برای rsync_long_args و rsync_short_args در rsnapshot پشتیبانی می‌شود. .RE .RE .RS 4 .Sp \&\fBbackup lvm://vg0/home/path2/ lvm\-vg0/\fR .Sp .RS 4 از حجم منطقی LVM به نام home، متعلق به گروه حجمی vg0، در مسیر /.0/lvm\-vg0/ پشتیبان تهیه می‌کند. برای هر ورودی lvm:// یک اسنپ‌شات LVM ایجاد، سوار (mount)، پشتیبان‌گیری، پیاده (unmount) و حذف خواهد شد. .RE .RE .RS 4 .Sp \&\fBbackup_script /usr/local/bin/backup_database.sh db_backup/\fR .Sp .RS 4 در این مثال، یک اسکریپت یا برنامه را برای اجرا مشخص می‌کنیم. این اسکریپت باید صرفاً فایل‌ها و/یا دایرکتوری‌هایی را در دایرکتوری کاری جاری خود بسازد. سپس rsnapshot آن خروجی را برداشته و به دایرکتوری مشخص‌شده در ستون سوم منتقل می‌کند. .Sp لطفاً توجه داشته باشید که هر آنچه در دایرکتوری مقصد باشد به طور کامل حذف شده و دوباره ساخته می‌شود. به همین دلیل، rsnapshot از مشخص کردن دایرکتوری مقصدی برای یک backup_script که باعث رونویسی و تخریب سایر پشتیبان‌ها شود جلوگیری می‌کند. .Sp بنابراین در این مثال، فرض کنید اسکریپت backup_database.sh دستوری شبیه به این را اجرا می‌کند: .Sp .Vb 1 \& #!/bin/sh \& \& mysqldump \-uusername mydatabase > mydatabase.sql \& \& chmod u=r,go= mydatabase.sql # r\-\-\-\-\-\-\-\- (0400) .Ve .Sp دستور rsnapshot فایل تولید شدهٔ «mydatabase.sql» را برداشته و آن را به دایرکتوری /.0/db_backup/ منتقل می‌کند. در اجراهای بعدی، rsnapshot تفاوت‌های میان فایل‌های ایجادشده را با فایل‌های قبلی مقایسه می‌کند. اگر اسکریپت پشتیبان‌گیری در اجرای بعدی خروجی یکسانی تولید کند، فایل‌ها به صورت پیوند سخت (hard link) به فایل‌های پیشین متصل می‌شوند و هیچ فضای دیسک اضافه‌ای مصرف نخواهد شد. .RE .RE .RS 4 .Sp \&\fBbackup_exec ssh root@1.2.3.4 "du \-sh /.offsite_backup" optional\fR .Sp \&\fBbackup_exec rsync \-az /.snapshots/daily.0 root@1.2.3.4:/.offsite_backup/ required\fR .Sp \&\fBbackup_exec /bin/true/\fR .Sp .RS 4 دستور \&\fBbackup_exec\fR صرفاً دستور فهرست‌شده را اجرا می‌کند. آرگومان دوم اجباری نیست و مقدار پیش‌فرض آن 'optional' است. این آرگومان اهمیت این را که دستور مقدار 0 بازگرداند مشخص می‌کند. مقادیر معتبر شامل 'optional' و 'required' هستند. اگر دستور به عنوان optional مشخص شده باشد، وضعیت خروج غیر صفر از سوی دستور منجر به نمایش پیام هشدار خواهد شد. اگر دستور به عنوان \&'required' مشخص شده باشد، وضعیت خروج غیر صفر از دستور منجر به نمایش پیام خطا شده و خود rsnapshot نیز با وضعیت خروج غیر صفر خاتمه می‌یابد. .RE .RE .RS 4 .RE .RE .RS 4 .RE .PP به یاد داشته باشید که تمامی عناصر باید با کلید Tab (جهش) از یکدیگر جدا شوند، و باید در انتهای هر دایرکتوری یک اسلش پایانی وجود داشته باشد. .PP علامت هش (#) در ابتدای یک خط به عنوان توضیح (کامنت) در نظر گرفته می‌شود. .PP ترکیب همهٔ این موارد با یکدیگر (یک فایل نمونه): .Sp .Vb 1 \& # THIS IS A COMMENT, REMEMBER TABS MUST SEPARATE ALL ELEMENTS \& \& 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 /dev \& linux_lvm_mountpath /mnt/lvm\-snapshot \& \& retain alpha 6 \& retain beta 7 \& retain gamma 7 \& retain delta 3 \& \& backup /etc/ localhost/ \& backup /home/ localhost/ \& backup_script /usr/local/bin/backup_mysql.sh mysql_backup/ \& \& backup root@foo.com:/etc/ foo.com/ \& backup root@foo.com:/home/ foo.com/ \& backup root@mail.foo.com:/home/ mail.foo.com/ \& backup rsync://example.com/pub/ example.com/pub/ \& backup lvm://vg0/xen\-home/ lvm\-vg0/xen\-home/ \& backup_exec echo "backup finished!" .Ve.SH "نحوه استفاده (USAGE)" .IX Header "USAGE" \&\fBrsnapshot\fR می‌تواند توسط هر کاربری استفاده شود، اما برای پشتیبان‌گیری‌های سراسری سیستم احتمالاً مایل خواهید بود آن را با دسترسی root اجرا کنید. .PP از آنجا که در صورت نیاز به دخالت انسان، پشتیبان‌گیری‌ها معمولاً فراموش می‌شوند، روش ارجح اجرای آن از طریق cron است. .PP هنگامی که برای نخستین بار پشتیبان‌گیری‌های خود را تنظیم می‌کنید، احتمالاً مایل خواهید بود آن را یک یا دو بار از خط فرمان اجرا کنید تا با نحوه کارکرد آن آشنا شوید. .PP در اینجا یک نمونه مدخل crontab آورده شده است، با این فرض که سطوح پشتیبان‌گیری \fBalpha\fR، \&\fBbeta\fR، \fBgamma\fR و \fBdelta\fR در \fI/etc/rsnapshot.conf\fR تعریف شده باشند: .Sp .RS 4 \&\fB0 */4 * * * /usr/local/bin/rsnapshot alpha\fR .Sp \&\fB50 23 * * * /usr/local/bin/rsnapshot beta\fR .Sp \&\fB40 23 * * 6 /usr/local/bin/rsnapshot gamma\fR .Sp \&\fB30 23 1 * * /usr/local/bin/rsnapshot delta\fR .RE .PP این مثال موارد زیر را انجام خواهد داد: .Sp .RS 4 ۶ پشتیبان‌گیری alpha در روز (هر ۴ ساعت یک بار، در ساعت‌های ۰، ۴، ۸، ۱۲، ۱۶ و ۲۰) .Sp ۱ پشتیبان‌گیری beta در هر روز، در ساعت ۲۳:۵۰ .Sp ۱ پشتیبان‌گیری gamma در هر هفته، ساعت ۲۳:۴۰، در روزهای شنبه (روز ششم هفته) .Sp ۱ پشتیبان‌گیری delta در هر ماه، ساعت ۲۳:۳۰ در روز اول ماه .RE .PP معمولاً ایده خوبی است که زمان‌بندی سطوح پشتیبان‌گیری بزرگ‌تر را کمی قبل از سطوح پایین‌تر تنظیم کنید. برای مثال، در crontab بالا، توجه داشته باشید که «beta» ۱۰ دقیقه پیش از «alpha» اجرا می‌شود. دلیل اصلی این کار آن است که چرخش (rotate) سطح beta قدیمی‌ترین نسخه alpha را برداشته و آن را به جدیدترین نسخه beta تبدیل می‌کند (به این معنی که در چرخش بعدی alpha نیازی به حذف قدیمی‌ترین نسخه alpha نخواهد بود)، که این فرآیند کارآمدتر است. دلیل فرعی دیگر این است که پیش‌بینی مدت‌زمان اجرای پایین‌ترین سطح پشتیبان‌گیری دشوارتر است، زیرا علاوه بر چرخشی که همه پشتیبان‌ها انجام می‌دهند، این سطح باید یک rsync واقعی را نیز از مبدأ انجام دهد. .PP اگر انجام چرخش «beta» در rsnapshot بیش از ۱۰ دقیقه طول بکشد (که معمولاً شامل حذف قدیمی‌ترین تصویر لحظه‌ای beta نیز می‌شود)، باید فاصله زمانی بین سطوح پشتیبان‌گیری را افزایش دهید. در غیر این صورت (با فرض اینکه پارامتر \fBlockfile\fR را مطابق توصیه تنظیم کرده باشید)، نسخه alpha گاهی با شکست مواجه خواهد شد زیرا beta همچنان قفل را در اختیار دارد. .PP به یاد داشته باشید که این‌ها تنها زمان‌های اجرای برنامه هستند. برای تعیین تعداد پشتیبان‌های ذخیره‌شده، مقادیر \fBretain\fR را در \&\fI/etc/rsnapshot.conf\fR تنظیم کنید. .PP برای بررسی فضای دیسک مصرف‌شده توسط rsnapshot، می‌توانید آن را با آرگومان «du» فراخوانی کنید. .PP برای مثال: .Sp .RS 4 \&\fBrsnapshot du\fR .RE .PP این دستور دقیقاً نشان می‌دهد چه مقدار فضای دیسک در ریشهٔ snapshot اشغال شده است. این ویژگی نیازمند آن است که دستور یونیکسی \fBdu\fR بر روی سیستم شما نصب شده باشد، از آرگومان‌های خط فرمان «\-csh» پشتیبانی کند، و در مسیر (PATH) شما قرار داشته باشد. همچنین می‌توانید با استفاده از پارامترهای cmd_du و du_args، تنظیمات مسیر و فلگ‌های ارسالی به du را بازنویسی کنید. .PP همچنین این امکان وجود دارد که یک مسیر فایل نسبی را به عنوان آرگومان دوم ارسال کنید تا گزارشی از یک فایل یا زیرشاخه خاص دریافت نمایید. .Sp .RS 4 \&\fBrsnapshot du localhost/home/\fR .RE .PP نسخه GNU از «du» ارجح است. نسخه BSD نیز به‌خوبی کار می‌کند، اما از فلگ \-h پشتیبانی نمی‌کند (به جای آن از \-k برای مشاهده مجموع مقادیر بر حسب کیلوبایت استفاده کنید). سایر نسخه‌های «du»، مانند Solaris، ممکن است اصلاً کار نکنند. .PP برای بررسی تفاوت‌های میان دو دایرکتوری، rsnapshot را با آرگومان «diff» و به دنبال آن دو سطح پشتیبان‌گیری یا مسیر دایرکتوری فراخوانی کنید. .PP برای مثال: .Sp .RS 4 \&\fBrsnapshot diff beta.0 beta.1\fR .Sp \&\fBrsnapshot diff beta.0/localhost/etc beta.1/localhost/etc\fR .Sp \&\fBrsnapshot diff /.snapshots/beta.0 /.snapshots/beta.1\fR .RE .PP این دستور برنامهٔ \f(CW\*(C`rsnapshot\-diff\*(C'\fR را فراخوانی می‌کند که هر دو دایرکتوری را برای یافتن تفاوت‌ها (بر پایه پیوندهای سخت) پویش خواهد کرد. .PP \&\fBrsnapshot sync\fR .Sp .RS 4 هنگامی که \fBsync_first\fR فعال باشد، ابتدا باید rsnapshot با آرگومان \fBsync\fR فراخوانی شود، و پس از آن سایر مدخل‌های معمول cron اجرا گردند. عملیات sync باید در سطحِ پایین‌ترین و پرتکرارترین پشتیبان‌گیری، و دقیقاً پیش از آن انجام شود. برای مثال: .Sp .RS 4 \&\fB0 */4 * * * /usr/local/bin/rsnapshot sync && /usr/local/bin/rsnapshot alpha\fR .Sp \&\fB50 23 * * * /usr/local/bin/rsnapshot beta\fR .Sp \&\fB40 23 1,8,15,22 * * /usr/local/bin/rsnapshot gamma\fR .Sp \&\fB30 23 1 * * /usr/local/bin/rsnapshot delta\fR .RE .RE .RS 4 .Sp عملیات sync صرفاً rsync و تمامی اسکریپت‌های پشتیبان‌گیری را اجرا می‌کند. در این سناریو، تمام فراخوانی‌ها دایرکتوری‌ها را به سادگی می‌چرخانند، حتی در پایین‌ترین سطح پشتیبان‌گیری. .Sp لطفاً توجه داشته باشید که دستور فوق «rsnapshot sync && rsnapshot alpha»، هرگاه rsnapshot عملیات همگام‌سازی خود را «همراه با هشدار» به پایان برساند (مثلاً برخی فایل‌ها در زمان اجرای rsync ناپدید شده باشند)، از چرخش دایرکتوری‌ها صرف‌نظر خواهد کرد. اگر می‌خواهید حتی در صورت وجود هشدارها نیز چرخش انجام شود، دستور زیر می‌تواند برای کار cron شما مناسب باشد: .Sp .RS 4 \&\fB0 */4 * * * /usr/local/bin/rsnapshot sync || [ $? \-eq 2 ] && /usr/local/bin/rsnapshot alpha\fR .RE .RE .RS 4 .RE .PP \&\fBrsnapshot sync [dest]\fR .Sp .RS 4 هنگامی که \fBsync_first\fR فعال باشد، تمام رفتار همگام‌سازی در طول یک گام sync اضافی رخ می‌دهد (به بالا مراجعه کنید). هنگام استفاده از آرگومان sync، تعیین مقصد نقطهٔ پشتیبان‌گیری به عنوان یک پارامتر اختیاری نیز امکان‌پذیر است. اگر این کار انجام شود، تنها نقاط پشتیبان‌گیری که آن مسیر مقصد را به اشتراک دارند همگام‌سازی خواهند شد. .Sp برای مثال، فرض کنید example.com یک مسیر مقصد مشترک بین یک یا چند نقطهٔ پشتیبان‌گیری شما باشد: .Sp .RS 4 rsnapshot sync example.com .RE .RE .RS 4 .Sp این دستور تنها فایل‌هایی را همگام‌سازی می‌کند که معمولاً در example.com پشتیبان‌گیری می‌شوند. این دستور هیچ نقطهٔ پشتیبان‌گیری دیگری با مقادیر اندکی متفاوت (مانند example.com/etc/) را در بر نخواهد گرفت. برای همگام‌سازی example.com/etc، باید rsnapshot را دوباره با استفاده از example.com/etc به عنوان پارامتر اختیاری اجرا کنید. .RE .PP \&\fBrsnapshot configtest\fR .Sp .RS 4 یک بررسی سلامت سریع انجام می‌دهد تا اطمینان حاصل شود همه چیز آمادهٔ اجرا است. .RE.SH "وضعیت خروج (EXIT VALUES)" .IX Header "EXIT VALUES" .RS 4 \&\fB0\fR تمام عملیات‌ها با موفقیت انجام شدند .Sp \&\fB1\fR یک خطای مهلک رخ داد .Sp \&\fB2\fR برخی هشدارها رخ داد، اما پشتیبان‌گیری همچنان به پایان رسید .RE .SH "فایل‌ها (FILES)" .IX Header "FILES" /etc/rsnapshot.conf .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBrsync\fR\|(1), \fBssh\fR\|(1), \fBlogger\fR\|(1), \fBsshd\fR\|(1), \fBssh\-keygen\fR\|(1), \fBperl\fR\|(1), \fBcp\fR\|(1), \fBdu\fR\|(1), \fBcrontab\fR\|(1) .SH "خطاها (DIAGNOSTICS)" .IX Header "DIAGNOSTICS" از پرچم \fB\-t\fR برای مشاهده دستوراتی که قرار بوده اجرا شوند استفاده کنید. این پرچم دستوراتی را که rsnapshot برای اجرا تلاش خواهد کرد نشان می‌دهد. تفاوت‌های جزئی اندکی وجود دارد (برای نمونه، عدم نمایش تلاش برای حذف lockfile به دلیل آنکه در آزمون واقعاً ایجاد نشده است)، اما دید بسیار خوبی از آنچه رخ خواهد داد به شما ارائه می‌دهد. .PP استفاده از پرچم‌های \fB\-v\fR، \fB\-V\fR و \fB\-D\fR به ترتیب اطلاعات بیشتری را در STDOUT چاپ می‌کند. .PP اطمینان حاصل کنید که در فایل پیکربندی به جای تب (tab) از فاصله (space) استفاده نکرده باشید. .PP بسیاری از رفتارهای عجیب دیگر را می‌توان احتمالاً به مجوزهای ساده سیستم فایل و مشکلات احراز هویت ssh نسبت داد. .SH "گزارش باگ‌ها (BUGS)" .IX Header "BUGS" لطفاً باگ‌ها (و سایر نظرات) را به فهرست پستی rsnapshot-discuss گزارش دهید: .PP \&\fBhttp://lists.sourceforge.net/lists/listinfo/rsnapshot\-discuss\fR .SH "نکات (NOTES)" .IX Header "NOTES" اطمینان حاصل کنید که تمام عناصر در فایل \fI/etc/rsnapshot.conf\fR شما با تب‌ها از یکدیگر جدا شده‌اند. برای مشاهده یک فایل نمونه کاربردی، \fI/etc/rsnapshot.conf.default\fR را ببینید. .PP مطمئن شوید که در انتهای تمام ارجاعات دایرکتوری از یک اسلش پایانی (trailing slash) استفاده می‌کنید. اگر این کار را نکنید، ممکن است دایرکتوری‌های اضافی در اسنپ‌شات‌های شما ایجاد شود. برای اطلاعات بیشتر در مورد نحوه مدیریت اسلش پایانی، صفحه راهنمای \fBrsync\fR\|(1) را ببینید. .PP اطمینان حاصل کنید که دایرکتوری اسنپ‌شات دارای دسترسی chmod 700 و در مالکیت کاربر root باشد (با فرض اینکه پشتیبان‌گیری‌ها توسط کاربر root انجام می‌شوند). اگر دایرکتوری اسنپ‌شات برای سایر کاربران قابل خواندن باشد، آن‌ها قادر خواهند بود اسنپ‌شات‌های حاوی فایل‌های خود را دستکاری کنند، که این امر یکپارچگی اسنپ‌شات‌ها را از بین می‌برد. .PP اگر مایلید کاربران عادی بتوانند پشتیبان‌های خود را بازیابی کنند، روش‌های مختلفی برای دستیابی به این هدف وجود دارد. یک سناریو به شرح زیر است: .PP مقدار \fBsnapshot_root\fR را در \fI/etc/rsnapshot.conf\fR برابر با \fB/.private/.snapshots\fR قرار دهید .PP مجوزهای فایل را روی این دایرکتوری‌ها به صورت زیر تنظیم کنید: .PP .Vb 1 \& drwx\-\-\-\-\-\- /.private \& \& drwxr\-xr\-x /.private/.snapshots .Ve .PP دایرکتوری /.private/.snapshots را از طریق NFS فقط‌خواندنی، یک اشتراک Samba فقط‌خواندنی و غیره برون‌سپاری (export) کنید. .PP برای کسب اطلاعات بیشتر درباره در دسترس قرار دادن نسخه‌های پشتیبان برای کاربران بدون امتیاز، به HOWTO مربوط به rsnapshot مراجعه کنید. .PP برای اینکه ssh بدون نیاز به نظارت کاربر از طریق cron کار کند، احتمالاً مایل خواهید بود از ورود با کلید عمومی استفاده کنید. یک کلید ssh بدون عبارت عبور (passphrase) برای root ایجاد کنید و کلید عمومی را روی هر ماشینی که قصد پشتیبان‌گیری از آن را دارید نصب نمایید. اگر در حال پشتیبان‌گیری از فایل‌های سیستمی ماشین‌های راه دور هستید، این موضوع احتمالاً به معنای ورودهای بدون نظارت کاربر root است. احتمال دیگر، ایجاد یک کاربر دوم روی ماشین صرفاً برای پشتیبان‌گیری است. نام دیگری مانند "rsnapshot" به کاربر اختصاص دهید، اما برای اعطای امتیازات root، مقادیر UID و GID را روی 0 نگه دارید. با این حال، ورودها را یا از طریق پیکربندی ssh یا با استفاده از یک شل جایگزین، محدودتر کنید. .PP مراقب باشید! اگر کلید خصوصی توسط یک مهاجم به دست آید، او به تمام سیستم‌های مربوطه دسترسی کامل خواهد داشت. اگر در مورد نحوه انجام این کار ابهام دارید، \fBssh\fR\|(1)، \fBsshd\fR\|(1) و \fBssh\-keygen\fR\|(1) را ببینید. .PP اسکریپت‌های پشتیبان‌گیری با همان کاربری اجرا می‌شوند که rsnapshot با آن در حال اجرا است. معمولاً این کاربر root است. مطمئن شوید که تمامی اسکریپت‌های پشتیبان‌گیری شما تنها توسط root قابل نوشتن هستند و هیچ برنامه دیگری را که متعلق به root نیست فراخوانی نمی‌کنند. اگر این کار را انجام ندهید، هر کسی که بتواند در اسکریپت پشتیبان‌گیری یا برنامه‌های فراخوانی‌شده توسط آن بنویسد، می‌تواند کنترل کامل ماشین را به دست گیرد. البته، این وضعیتی نیست که مختص به rsnapshot باشد. .PP به طور پیش‌فرض، انتقال‌های rsync با استفاده از گزینه \-\-numeric\-ids انجام می‌شوند. این به این معنی است که نام‌های کاربری و نام‌های گروه‌ها در حین انتقال نادیده گرفته می‌شوند، اما اطلاعات UID/GID دست‌نخورده باقی می‌مانند. فرض بر این است که پشتیبان‌ها در همان محیطی که از آن آمده‌اند بازیابی خواهند شد. بدون این گزینه، بازیابی پشتیبان‌ها برای چندین سرور ناهمگن غیرقابل مدیریت خواهد بود. اگر در حال بایگانی اسنپ‌شات‌ها با GNU tar هستید، ممکن است بخواهید از پارامتر \-\-numeric\-owner استفاده کنید. همچنین، یک نسخه از فایل‌های \fI/etc/passwd\fR و \fI/etc/group\fR سیستم بایگانی‌شده را برای نگاشت UID/GID به نام‌ها در دسترس نگه دارید. .PP اگر نقاط پشتیبان‌گیری را در فایل پیکربندی حذف کنید، فایل‌هایی که قبلاً ذیل آن نقاط بایگانی شده‌اند برای همیشه در دایرکتوری اسنپ‌شات‌ها باقی می‌مانند، مگر اینکه خودتان فایل‌ها را حذف کنید. اگر می‌خواهید فضای دیسک را ذخیره کنید، باید به دایرکتوری بروید و فایل‌ها را به صورت دستی از دایرکتوری ".0" در کوچک‌ترین سطح پشتیبان‌گیری حذف کنید. .PP برای مثال، اگر قبلاً از /home/ با مقصد localhost/ پشتیبان‌گیری می‌کردید و alpha کوچک‌ترین سطح پشتیبان‌گیری شماست، برای آزادسازی مجدد فضای دیسک باید اقدام زیر را انجام دهید: .PP .Vb 1 \& rm \-rf /alpha.0/localhost/home/ .Ve .PP لطفاً توجه داشته باشید که سایر اسنپ‌شات‌هایی که قبلاً از /home/ گرفته شده‌اند همچنان از آن فضای دیسک استفاده خواهند کرد، اما از آنجا که فایل‌ها از alpha.0/ پاک‌سازی شده‌اند، دیگر به دایرکتوری‌های بعدی کپی نخواهند شد و بنابراین با انجام چرخه‌ها (rotations) در موعد مقرر حذف خواهند شد..SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Mike Rubel \- \fBhttp://www.mikerubel.org/computers/rsync_snapshots\fR .IP "\- نگارش اسکریپت‌های اولیه پوسته که این پروژه بر پایه آن‌ها بنا شده است" 4 .IX Item "- نگارش اسکریپت‌های اولیه پوسته که این پروژه بر پایه آن‌ها بنا شده است" .PP Nathan Rosenquist (\fBnathan@rsnapshot.org\fR) .IP "\- نویسنده اصلی و نگه‌دارنده اولیه rsnapshot." 4 .IX Item "- نویسنده اصلی و نگه‌دارنده اولیه rsnapshot." .PP David Cantrell (\fBdavid@cantrell.org.uk\fR) .IP "\- نگه‌دارنده پیشین rsnapshot" 4 .IX Item "- نگه‌دارنده پیشین rsnapshot" .PD 0 .ie n .IP "\- نگارش ابزار ""rsnapshot\-diff""" 4 .el .IP "\- نگارش ابزار \f(CWrsnapshot\-diff\fR" 4 .IX Item "- نگارش ابزار rsnapshot-diff" .IP "\- بهبود عملکرد use_lazy_deletes به‌گونه‌ای که حذف‌های کُند، نسخه پشتیبان بعدی را در آن سطح پشتیبان‌گیری مختل نکند." 4 .IX Item "- بهبود عملکرد use_lazy_deletes به‌گونه‌ای که حذف‌های کُند، نسخه پشتیبان بعدی را در آن سطح پشتیبان‌گیری مختل نکند." .PD .PP David Keegel .IP "\- نگه‌دارنده پیشین rsnapshot" 4 .IX Item "- نگه‌دارنده پیشین rsnapshot" .PD 0 .IP "\- رفع شرایط رقابتی در ایجاد فایل قفل و بهبود گزارش‌دهی خطاها" 4 .IX Item "- رفع شرایط رقابتی در ایجاد فایل قفل و بهبود گزارش‌دهی خطاها" .IP "\- مجاز ساختن مسیرهای دایرکتوری ssh دوردست که با ""~/"" و همچنین ""/""" آغاز می‌شوند 4 .IX Item "- مجاز ساختن مسیرهای دایرکتوری ssh دوردست که با ""~/"" و همچنین ""/""" آغاز می‌شوند .IP "\- رفع تعدادی از باگ‌ها و اشکالات کوچک دیگر" 4 .IX Item "- رفع تعدادی از باگ‌ها و اشکالات کوچک دیگر" .PD .PP Benedikt Heine .IP "\- نگه‌دارنده پیشین rsnapshot (2015\-2017)" 4 .IX Item "- نگه‌دارنده پیشین rsnapshot (2015-2017)" .PP Carl Wilhelm Soderstrom (\fBchrome@real\-time.com\fR) .IP "\- ایجاد فایل .spec برای RPM که در کنار موارد دیگر، امکان ساخت بسته RPM را فراهم ساخت." 4 .IX Item "- ایجاد فایل .spec برای RPM که در کنار موارد دیگر، امکان ساخت بسته RPM را فراهم ساخت." .PP Ted Zlatanov (\fBtzz@lifelogs.com\fR) .IP "\- افزودن قابلیت one_fs، پشتیبانی از autoconf، راهنمایی‌های ارزشمند و موارد بسیار دیگر." 4 .IX Item "- افزودن قابلیت one_fs، پشتیبانی از autoconf، راهنمایی‌های ارزشمند و موارد بسیار دیگر." .PP Ralf van Dooren (\fBr.vdooren@snow.nl\fR) .IP "\- افزودن و نگه‌داری مدخل rsnapshot در درخت پورت‌های FreeBSD." 4 .IX Item "- افزودن و نگه‌داری مدخل rsnapshot در درخت پورت‌های FreeBSD." .PP SlapAyoda .IP "\- فراهم کردن امکان دسترسی به موزه رایانه‌اش به منظور آزمایش نرم‌افزار." 4 .IX Item "- فراهم کردن امکان دسترسی به موزه رایانه‌اش به منظور آزمایش نرم‌افزار." .PP Carl Boe (\fBboe@demog.berkeley.edu\fR) .IP "\- یافتن چندین باگ پنهان و ظریف و ارائه راه‌حل‌هایی برای رفع آن‌ها." 4 .IX Item "- یافتن چندین باگ پنهان و ظریف و ارائه راه‌حل‌هایی برای رفع آن‌ها." .PP Shane Leibling (\fBshane@cryptio.net\fR) .IP "\- رفع یک باگ سازگاری در utils/backup_smb_share.sh" 4 .IX Item "- رفع یک باگ سازگاری در utils/backup_smb_share.sh" .PP Christoph Wegscheider (\fBchristoph.wegscheider@wegi.net\fR) .IP "\- افزودن (و نگه‌داری پیشین) بسته دبیان rsnapshot." 4 .IX Item "- افزودن (و نگه‌داری پیشین) بسته دبیان rsnapshot." .PP Bharat Mediratta (\fBbharat@menalto.com\fR) .IP "\- بهبود قوانین استثنا برای جلوگیری از پشتیبان‌گیری از ریشه snapshot (در کنار موارد دیگر)." 4 .IX Item "- بهبود قوانین استثنا برای جلوگیری از پشتیبان‌گیری از ریشه snapshot (در کنار موارد دیگر)." .PP Peter Palfrader (\fBweasel@debian.org\fR) .IP "\- ارتقای گزارش‌دهی خطاها به‌گونه‌ای که شامل گزینه‌های خط فرمان نیز باشد." 4 .IX Item "- ارتقای گزارش‌دهی خطاها به‌گونه‌ای که شامل گزینه‌های خط فرمان نیز باشد." .PP Nicolas Kaiser (\fBnikai@nikai.net\fR) .IP "\- رفع اشتباهات نگارشی در برنامه و صفحه راهنما" 4 .IX Item "- رفع اشتباهات نگارشی در برنامه و صفحه راهنما" .PP Chris Petersen \- (\fBhttp://www.forevermore.net\fR) .Sp .RS 4 افزودن پشتیبانی از permanent-share برای cwrsync .RE .PP Robert Jackson (\fBRobertJ@promedicalinc.com\fR) .Sp .RS 4 افزودن قابلیت use_lazy_deletes .RE .PP Justin Grote (\fBjustin@grote.name\fR) .Sp .RS 4 بهبود کد گزارش‌دهی خطای rsync .RE .PP Anthony Ettinger (\fBapwebdesign@yahoo.com\fR) .Sp .RS 4 نگارش اسکریپت \f(CW\*(C`utils/mysqlbackup.pl\*(C'\fR .RE .PP Sherman Boyd .Sp .RS 4 نگارش اسکریپت \f(CW\*(C`utils/random_file_verify.sh\*(C'\fR .RE .PP William Bear (\fBbear@umn.edu\fR) .Sp .RS 4 نگارش اسکریپت \f(CW\*(C`utils/rsnapreport.pl\*(C'\fR (خلاصه‌ای زیبا از آمار rsync) .RE .PP Eric Anderson (\fBanderson@centtech.com\fR) .Sp .RS 4 بهبودهایی در \f(CW\*(C`utils/rsnapreport.pl\*(C'\fR. .RE .PP Alan Batie (\fBalan@batie.org\fR) .Sp .RS 4 رفع باگ‌های include_conf .RE .PP Dieter Bloms (\fBdieter@bloms.de\fR) .Sp .RS 4 گزینه‌های پیکربندی چندخطی .RE .PP Henning Moll (\fBnewsScott@gmx.de\fR) .Sp .RS 4 stop_on_stale_lockfile .RE .PP Ben Low (\fBben@bdlow.net\fR) .Sp .RS 4 پشتیبانی از snapshot در LVM لینوکس .RE.SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" کپی‌رایت (C) 2003\-2005 Nathan Rosenquist .PP بخشی از کپی‌رایت (C) 2002\-2007 متعلق به Mike Rubel, Carl Wilhelm Soderstrom, Ted Zlatanov, Carl Boe, Shane Liebling, Bharat Mediratta, Peter Palfrader, Nicolas Kaiser, David Cantrell, Chris Petersen, Robert Jackson, Justin Grote, David Keegel, Alan Batie, Dieter Bloms, Henning Moll, Ben Low, Anthony Ettinger .PP این صفحه راهنما تحت همان مجوز rsnapshot منتشر شده است: مجوز GPL (به زیر مراجعه کنید). .PP این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) منتشر شده است، بازتوزیع کرده و/یا تغییر دهید؛ چه نسخهٔ 2 مجوز و چه (به انتخاب خودتان) هر نسخهٔ بالاتر دیگری. .PP این برنامه با این امید توزیع شده است که مفید باشد، اما بدون هر گونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا تناسب برای یک هدف خاص. برای جزئیات بیشتر به GNU General Public License مراجعه کنید. .PP شما باید به همراه این برنامه نسخه‌ای از GNU General Public License دریافت کرده باشید؛ در غیر این صورت، به Free Software Foundation, Inc. بنویسید: 51 Franklin Street, Fifth Floor, Boston, MA 02110\-1301 USA