.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (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 .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "RRDUPDATE 1" .TH RRDUPDATE 1 2026-08-08 1.11.0 rrdtool .\" 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)" rrdupdate \- ذخیره مجموعه‌ای از مقادیر جدید در RRD .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBrrdtool\fR {\fBupdate\fR | \fBupdatev\fR} \fIfilename\fR [\fB\-\-template\fR|\fB\-t\fR\ \fIds\-name\fR[\fB:\fR\fIds\-name\fR]...] [\fB\-\-skip\-past\-updates\fR|\fB\-s\fR] [\fB\-\-daemon\fR|\fB\-d\fR\ \fIaddress\fR] [\fB\-\-\fR] \&\fBN\fR\fB:\fR\fIvalue\fR[\fB:\fR\fIvalue\fR]... \&\fItimestamp\fR\fB:\fR\fIvalue\fR[\fB:\fR\fIvalue\fR]... \&\fIat\-timestamp\fR\fB@\fR\fIvalue\fR[\fB:\fR\fIvalue\fR]... .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" تابع \fBupdate\fR مقادیر جدید داده را به یک \fBRRD\fR تزریق می‌کند. داده‌ها متناسب با ویژگی‌های \fBRRD\fR که داده در آن نوشته می‌شود، از نظر زمانی هم‌تراز (درونیابی) می‌شوند. .IP \fBupdatev\fR 8 .IX Item "updatev" این نسخهٔ جایگزین \fBupdate\fR همان آرگومان‌ها را می‌گیرد و عملکرد مشابهی را انجام می‌دهد. حرف \fIv\fR نشان‌دهندهٔ \fIverbose\fR (مشروح) است که خروجی بازگردانده‌شده را توصیف می‌کند. \fBupdatev\fR فهرستی از تمامی نقاط دادهٔ یکپارچه‌شده (CDPها) را که در نتیجهٔ فراخوانی update روی دیسک نوشته شده‌اند، بازمی‌گرداند. مقادیر بر اساس برچسب زمانی (time_t)، RRA (تابع یکپارچه‌سازی و تعداد PDPها به ازای هر CDP)، و منبع داده (نام) نمایه‌گذاری می‌شوند. توجه داشته باشید که بسته به آرگومان‌های فراخوانی فعلی و قبلیِ update، این فهرست ممکن است هیچ مدخلی نداشته باشد یا شامل تعداد زیادی مدخل باشد. .Sp از آن‌جا که \fBupdatev\fR نیازمند دسترسی مستقیم به دیسک است، گزینهٔ \fB\-\-daemon\fR نمی‌تواند همراه با این دستور استفاده شود. .IP \fIfilename\fR 8 .IX Item "filename" نام فایل \fBRRD\fR که می‌خواهید به‌روزرسانی کنید. .IP "\fB\-\-locking\fR|\fB\-L\fR \fBtry\fR|\fBblock\fR|\fBnone\fR" 8 .IX Item "--locking|-L try|block|none" قفل کردن فایل \fBRRD\fR در حالت ارائه‌شده: \fBtry\fR در صورتی که فایل توسط فرایند دیگری قفل شده باشد با شکست مواجه می‌شود، \fBblock\fR تا زمان آزاد شدن قفل منتظر می‌ماند، و \fBnone\fR قفل‌گذاری را به‌طور کامل نادیده می‌گیرد. مقدار پیش‌فرض از متغیر محیطی \fR\f(CB$RRD_LOCKING\fR\fB\fR خوانده می‌شود و در صورت عدم وجود چنین متغیری، به \fBtry\fR بازمی‌گردد. .IP "\fB\-\-template\fR|\fB\-t\fR \fIds\-name\fR[\fB:\fR\fIds\-name\fR]..." 8 .IX Item "--template|-t ds-name[:ds-name]..." به‌طور پیش‌فرض، تابع \fBupdate\fR ورودی داده‌های خود را به همان ترتیبی که منابع داده در RRD تعریف شده‌اند انتظار دارد، به استثنای هرگونه منبع دادهٔ COMPUTE (یعنی اگر نوع دادهٔ سومین منبع داده (\fBDST\fR) از نوع COMPUTE باشد، سومین مقدار ورودی به چهارمین منبع داده در \fBRRD\fR نگاشت می‌شود و الی آخر). این روش در برابر خطا چندان مقاوم نیست، چرا که ممکن است داده‌های نادرستی را به یک RRD ارسال کنید. .Sp گزینهٔ template به شما امکان می‌دهد مشخص کنید کدام منابع داده را و با چه ترتیبی قصد دارید به‌روزرسانی کنید. اگر منابع داده مشخص‌شده در الگو در فایل RRD موجود نباشند، فرایند به‌روزرسانی با یک پیام خطا متوقف خواهد شد. .Sp اگرچه با استفاده از گزینهٔ template به‌روزرسانی ناهمگام منابع داده ممکن به نظر می‌رسد، اما \fBRRDtool\fR به منابع دادهٔ غیر COMPUTE که در الگو موجود نیستند، به‌طور ضمنی مقدار \fI*UNKNOWN*\fR (ناشناخته) را اختصاص می‌دهد. .Sp برای یک \fBDST\fR از نوع COMPUTE در تابع \fBupdate\fR مقداری تعیین نکنید. اگر این کار تصادفاً انجام شود (و این کار فقط با استفاده از گزینهٔ template امکان‌پذیر است)، \fBRRDtool\fR مقدار تعیین‌شده برای \fBDST\fR محاسباتی (COMPUTE) را نادیده خواهد گرفت. .Sp دیمن کش‌گذاری rrdcached هنوز نمی‌تواند همزمان با الگوها (templates) استفاده شود. .IP \fB\-\-skip\-past\-updates\fR|\fB\-s\fR 8 .IX Item "--skip-past-updates|-s" هنگام به‌روزرسانی یک فایل rrd با داده‌هایی قدیمی‌تر از آخرین به‌روزرسانیِ اعمال‌شده، rrdtool یک پیام خطا صادر کرده و متوقف می‌شود. این گزینه به rrdtool دستور می‌دهد که چنین داده‌هایی را بدون هشدار نادیده بگیرد. این گزینه زمانی مفید است که داده‌های قدیمی را دوباره در یک فایل rrd بازپخش (re-play) می‌کنید و مطمئن نیستید چه تعداد به‌روزرسانی قبلاً اعمال شده است. .IP "\fB\-\-daemon\fR|\fB\-d\fR \fIaddress\fR" 8 .IX Item "--daemon|-d address" در صورت تعیین، \fBRRDtool\fR تلاش خواهد کرد تا به دیمن کش‌گذاری rrdcached در نشانی \fIaddress\fR متصل شود. اگر اتصال با موفقیت برقرار شود، مقادیر به جای دسترسی مستقیم به فایل‌ها به دیمن ارسال خواهند شد. اگر برقراری اتصال ممکن نباشد، برنامه به دسترسی مستقیم به فایل بازمی‌گردد. اگرچه این رفتار کار را راحت می‌کند، اما می‌تواند بی‌سرصدا مشکلاتی ایجاد کند، بنابراین لطفاً هشدار بخش مثال‌ها را مطالعه فرمایید. .Sp برای مشاهدهٔ فهرستی از قالب‌های پذیرفته‌شده، گزینهٔ \fB\-l\fR را در راهنمای rrdcached ببینید. .IP "{\fBN\fR | \fItimestamp\fR}\fB:\fR\fIvalue\fR[\fB:\fR\fIvalue\fR]..." 8 .IX Item "{N | timestamp}:value[:value]..." داده‌های استفاده‌شده برای به‌روزرسانی RRD در یک زمان مشخص دریافت شده‌اند. این زمان می‌تواند بر حسب ثانیه‌های سپری‌شده از تاریخ 1970\-01\-01 یا با استفاده از حرف \*(AqN\*(Aq تعریف شود که در این حالت زمان به‌روزرسانی برابر با زمان فعلی قرار می‌گیرد. مقادیر زمانی منفی از زمان فعلی کسر می‌شوند. همچنین می‌توان از قالب زمانی به سبک دستور at (مشخصه AT_STYLE، مستندات \fIrrdfetch\fR را ببینید) با قرار دادن نویسهٔ \*(Aq@\*(Aq در انتهای مشخصهٔ زمانی به جای \*(Aq:\*(Aq استفاده کرد. تنظیم دقیق زمان تا ثانیه، به‌ویژه زمانی حائز اهمیت است که با منابع داده‌ای از نوع \fBCOUNTER\fR، \fBDERIVE\fR، \fBDCOUNTER\fR، \fBDDERIVE\fR یا \fBABSOLUTE\fR کار می‌کنید. .Sp هنگام استفاده از مقادیر زمانی منفی، گزینه‌ها و داده‌ها باید با دو خط تیره (\fB\-\-\fR) از یکدیگر جدا شوند، در غیر این صورت مقدار زمانی به عنوان یک گزینه تفسیر خواهد شد. برای مشاهدهٔ نمونه، مثال‌های زیر را ببینید. .Sp عناصر باقی‌ماندهٔ آرگومان، به‌روزرسانی‌های DS (منبع داده) هستند. ترتیب این فهرست همان ترتیبی است که منابع داده در RRA تعریف شده‌اند. اگر برای یک منبع دادهٔ خاص مقداری وجود نداشته باشد، می‌توان از حرف \&\fBU\fR (مانند N:0.1:U:1) استفاده کرد. .Sp قالب مقدار به‌دست‌آمده از منبع داده، وابسته به نوع منبع دادهٔ انتخاب‌شده است. معمولاً این مقدار عددی است، اما ماژول‌های جمع‌آوری داده تا زمانی که دونقطه (\fB:\fR) به عنوان جداکنندهٔ مقادیر منابع داده باقی بماند، ممکن است تجزیه و تحلیل دلخواه خود را روی این پارامتر اعمال کنند. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .IX Header "ENVIRONMENT VARIABLES" متغیرهای محیطی زیر می‌توانند برای تغییر رفتار \&\f(CW\*(C`rrdtool\ update\*(C'\fR مورد استفاده قرار گیرند: .IP \fBRRDCACHED_ADDRESS\fR 4 .IX Item "RRDCACHED_ADDRESS" اگر این متغیر محیطی تنظیم شده باشد، اثری مشابه تعیین گزینهٔ \f(CW\*(C`\-\-daemon\*(C'\fR در خط فرمان خواهد داشت. اگر هر دو مقدار موجود باشند، آرگومان خط فرمان اولویت دارد. .IP \fBRRDCACHED_STRIPPATH\fR 4 .IX Item "RRDCACHED_STRIPPATH" اگر این متغیر محیطی تنظیم شده باشد، رشتهٔ ابتدایی نام فایل را قبل از ارسال آن به rrdcached حذف می‌کند. این قابلیت عمدتاً برای این در نظر گرفته شده است که rrdcached بتواند بدون نیاز به تغییر ابزارهای xymon و cacti با آن‌ها کار کند. .IP \fBRRD_LOCKING\fR 4 .IX Item "RRD_LOCKING" اگر این متغیر محیطی تنظیم شده باشد، فایل \fBRRD\fR در حالت تعیین‌شده قفل می‌شود: \fBtry\fR در صورتی که فایل توسط فرایند دیگری قفل شده باشد ناموفق می‌شود، \&\fBblock\fR تا زمان آزاد شدن قفل منتظر می‌ماند و \fBnone\fR قفل‌گذاری را به‌طور کلی نادیده می‌گیرد. .Sp این متغیر می‌تواند توسط گزینهٔ خط فرمان \fB\-\-locking\fR بازنویسی شود. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" .IP \(bu 4 \&\f(CW\*(C`rrdtool update demo1.rrd N:3.44:3.15:U:23\*(C'\fR .Sp به‌روزرسانی فایل پایگاه‌داده demo1.rrd با ۳ مقدار مشخص و یک مقدار \fI*UNKNOWN*\fR. استفاده از زمان فعلی به عنوان زمان به‌روزرسانی. .IP \(bu 4 \&\f(CW\*(C`rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7\*(C'\fR .Sp به‌روزرسانی فایل پایگاه‌داده demo2.rrd (که انتظار داده از یک منبع دادهٔ منفرد را دارد) در سه مرحله. ابتدا با یک مقدار \fI*UNKNOWN*\fR و سپس با دو خوانش معمولی. به نظر می‌رسد بازهٔ زمانی به‌روزرسانی حدود ۳۰۰ ثانیه باشد. .IP \(bu 4 \&\f(CW\*(C`rrdtool update demo3.rrd \-\- \-5:21 N:42\*(C'\fR .Sp به‌روزرسانی فایل پایگاه‌داده demo3.rrd در دو مرحله، با استفاده از ۵ ثانیه در گذشته و زمان فعلی به عنوان زمان‌های به‌روزرسانی. .IP \(bu 4 \&\f(CW\*(C`rrdtool update \-\-daemon unix:/tmp/rrdd.sock demo4.rrd N:23\*(C'\fR .Sp استفاده از سوکت دامنهٔ یونیکس \f(CW\*(C`/tmp/rrdd.sock\*(C'\fR برای ارتباط با دیمن کش‌گذاری. اگر دیمن کش‌گذاری در دسترس نباشد، فایل \f(CW\*(C`demo4.rrd\*(C'\fR مستقیماً به‌روزرسانی می‌شود. \&\fBهشدار:\fR از آن‌جا که یک مسیر نسبی مشخص شده است، ممکن است اثر نامطلوب زیر رخ دهد: اگر دیمن در دسترس باشد، فایل به صورت نسبی نسبت به پوشه کاری (working directory) \fBدیمن\fR استفاده می‌شود. اگر دیمن در دسترس نباشد، فایل به صورت نسبی نسبت به پوشه کاری فعلی فرایند فراخواننده استفاده خواهد شد. \&\fBاین امر ممکن است بسته به این‌که دیمن در دسترس باشد یا خیر، باعث به‌روزرسانی دو فایل کاملاً متفاوت شود.\fR بچه‌ها، از مسیرهای نسبی استفاده نکنید! .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Tobias Oetiker , Florian Forster