'\" t .\" Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. .\" .\" This code is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License version 2 only, as .\" published by the Free Software Foundation. .\" .\" This code is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" version 2 for more details (a copy is included in the LICENSE file that .\" accompanied this code). .\" .\" You should have received a copy of the GNU General Public License version .\" 2 along with this work; if not, write to the Free Software Foundation, .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. .\" .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA .\" or visit www.oracle.com if you need additional information or have any .\" questions. .\" .\" Arch: generic .\" Software: JDK 8 .\" Date: 21 November 2013 .\" SectDesc: Monitoring Tools .\" Title: jstatd.1 .\" .if n .pl 99999 .TH jstatd 1 "21 November 2013" "JDK 8" "Monitoring Tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" jstatd \- ماشین‌های مجازی جاوا (JVM) را پایش کرده و امکان اتصال ابزارهای پایش از راه دور به آن‌ها را فراهم می‌کند\&. این دستور آزمایشی است و پشتیبانی نمی‌شود\&. .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBjstatd\fR [ \fIoptions\fR ] .fi .sp .TP \fIoptions\fR گزینه‌های خط فرمان\&. بخش گزینه‌ها را ببینید\&. .SH "توضیحات (DESCRIPTION)" دستور \f3jstatd\fR یک برنامه سرور RMI است که ایجاد و خاتمه ماشین‌های مجازی مجهز‌شده Java HotSpot را پایش می‌کند و رابطی را فراهم می‌آورد تا ابزارهای نظارت از راه دور بتوانند به JVMهای در حال اجرا بر روی میزبان محلی متصل شوند\&. .PP سرور \f3jstatd\fR به یک رجیستری RMI بر روی میزبان محلی نیاز دارد\&. سرور \f3jstatd\fR تلاش می‌کند تا به رجیستری RMI روی درگاه پیش‌فرض، یا درگاهی که با گزینه \f3-p\fR\f3port\fR مشخص کرده‌اید متصل شود\&. اگر رجیستری RMI پیدا نشود، نمونه‌ای درون برنامه \f3jstatd\fR ایجاد شده و به درگاه مشخص‌شده با گزینه \f3-p\fR\f3port\fR، یا در صورت قید نشدن این گزینه به درگاه پیش‌فرض رجیستری RMI مقید (bound) می‌شود\&. با مشخص کردن گزینه \f3-nr\fR می‌توانید از ایجاد یک رجیستری داخلی RMI جلوگیری کنید\&. .SH "گزینه‌ها (OPTIONS)" .TP -nr .br در صورتی که رجیستری RMI موجود یافت نشود، تلاشی برای ایجاد رجیستری داخلی RMI درون فرآیند \f3jstatd\fR انجام نمی‌دهد\&. .TP -p \fIport\fR .br شماره درگاهی که انتظار می‌رود رجیستری RMI در آن یافت شود، یا در صورت عدم وجود، چنانچه گزینه \f3-nr\fR مشخص نشده باشد در آن ایجاد شود\&. .TP -n \fIrminame\fR .br نامی که شیء RMI از راه دور در رجیستری RMI با آن مقید (bind) می‌شود\&. نام پیش‌فرض \f3JStatRemoteHost\fR است\&. اگر چندین سرور \f3jstatd\fR بر روی یک میزبان راه‌اندازی شوند، نام شیء RMI اکسپورت‌شده برای هر سرور می‌تواند با مشخص کردن این گزینه یکتا گردد\&. با این حال، انجام این کار مستلزم آن است که نام یکتای سرور در رشته‌های \f3hostid\fR و \f3vmid\fR کلاینت نظارتی گنجانده شود\&. .TP -J\fIoption\fR .br گزینه \f3option\fR را به JVM ارسال می‌کند، که در آن option یکی از گزینه‌های شرح‌داده‌شده در صفحه راهنمای راه‌انداز برنامه جاوا است\&. برای مثال، \f3-J-Xms48m\fR حافظه هنگام راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند\&. \f3java\fR(1) را ببینید\&. .SH "امنیت (SECURITY)" سرور \f3jstatd\fR تنها می‌تواند JVMهایی را پایش کند که مجوزهای دسترسی بومی (native) مناسب را برای آن‌ها داشته باشد\&. بنابراین، فرآیند \f3jstatd\fR باید با همان اعتبارنامه‌های کاربری ماشین‌های مجازی هدف اجرا شود\&. برخی از اعتبارنامه‌های کاربری، مانند کاربر ریشه (root) در سیستم‌های مبتنی بر یونیکس، مجوز دسترسی به داده‌های تشخیصی ارائه‌شده توسط هر JVM در سیستم را دارند\&. یک فرآیند \f3jstatd\fR که با چنین اعتبارنامه‌هایی اجرا می‌شود می‌تواند هر JVM در سیستم را پایش کند، اما نگرانی‌های امنیتی بیشتری به همراه خواهد داشت\&. .PP سرور \f3jstatd\fR هیچ‌گونه احراز هویتی برای کلاینت‌های راه دور ارائه نمی‌دهد\&. بنابراین، اجرای یک فرآیند سرور \f3jstatd\fR، داده‌های ارائه‌شده توسط همه JVMهایی را که فرآیند \f3jstatd\fR مجوز دسترسی به آن‌ها را دارد، در دسترس هر کاربری در شبکه قرار می‌دهد\&. این دسترسی ممکن است در محیط شما ناخواسته باشد؛ از این رو، پیش از راه‌اندازی فرآیند \f3jstatd\fR، به‌ویژه در محیط‌های عملیاتی یا شبکه‌های ناامن، باید سیاست‌های امنیتی محلی را در نظر گرفت\&. .PP سرور \f3jstatd\fR در صورتی که مدیر امنیت دیگری نصب نشده باشد، نمونه‌ای از \f3RMISecurityPolicy\fR را نصب می‌کند و در نتیجه، نیازمند تعیین یک فایل خط‌مشی امنیتی (security policy file) است\&. این فایل باید با Default Policy Implementation and Policy File Syntax در نشانی http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/PolicyFiles\&.html مطابقت داشته باشد\&. .PP فایل خط‌مشی زیر به سرور \f3jstatd\fR اجازه می‌دهد تا بدون هیچ استثنای امنیتی اجرا شود\&. این خط‌مشی محدودتر از اعطای تمام مجوزها به تمام کدهای مبدأ است، اما نسبت به خط‌مشی که حداقل مجوزها را برای اجرای سرور \f3jstatd\fR اعطا می‌کند بازتر است\&. .sp .nf \f3grant codebase "file:${java\&.home}/\&.\&./lib/tools\&.jar" { \fP .fi .nf \f3 permission java\&.security\&.AllPermission;\fP .fi .nf \f3};\fP .fi .nf \f3\fP .fi .sp برای استفاده از این تنظیم خط‌مشی، این متن را در فایلی به نام \f3jstatd\&.all\&.policy\fR ذخیره کرده و سرور \f3jstatd\fR را به صورت زیر اجرا کنید: .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=jstatd\&.all\&.policy\fP .fi .nf \f3\fP .fi .sp برای محیط‌هایی با شیوه‌های امنیتی محدودکننده‌تر، می‌توان از یک فایل خط‌مشی سفارشی برای محدود کردن دسترسی به میزبان‌ها یا شبکه‌های مورد اعتماد خاص استفاده کرد، اگرچه چنین روش‌هایی در معرض حملات جعل آدرس IP هستند\&. اگر نگرانی‌های امنیتی شما با یک فایل خط‌مشی سفارشی برطرف نمی‌شود، امن‌ترین اقدام این است که سرور \f3jstatd\fR را اجرا نکرده و از ابزارهای \f3jstat\fR و \f3jps\fR به‌صورت محلی استفاده کنید\&. .SH "رابط راه دور (REMOTE INTERFACE)" رابط ارائه‌شده توسط فرآیند \f3jstatd\fR اختصاصی است و تضمین شده که در آینده تغییر کند\&. به کاربران و توسعه‌دهندگان توصیه می‌شود برای این رابط برنامه‌نویسی نکنند\&. .SH "مثال‌ها (EXAMPLES)" در ادامه مثال‌هایی از دستور \f3jstatd\fR آورده شده است\&. اسکریپت‌های \f3jstatd\fR سرور را به‌طور خودکار در پس‌زمینه اجرا می‌کنند\&. .SS "رجیستری داخلی RMI (INTERNAL RMI REGISTRY)" این مثال نحوه راه‌اندازی یک نشست \f3jstatd\fR با یک رجیستری داخلی RMI را نشان می‌دهد\&. این مثال فرض می‌کند که هیچ سرور دیگری به درگاه پیش‌فرض رجیستری RMI (درگاه 1099) متصل نشده باشد\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3\fP .fi .sp .SS "رجیستری خارجی RMI (EXTERNAL RMI REGISTRY)" این مثال یک نشست \f3jstatd\fR را با یک رجیستری خارجی RMI راه‌اندازی می‌کند\&. .sp .nf \f3rmiregistry&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3\fP .fi .sp این مثال یک نشست \f3jstatd\fR را با یک سرور رجیستری خارجی RMI روی درگاه 2020 راه‌اندازی می‌کند\&. .sp .nf \f3jrmiregistry 2020&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020\fP .fi .nf \f3\fP .fi .sp این مثال یک نشست \f3jstatd\fR با یک رجیستری خارجی RMI روی درگاه 2020 راه‌اندازی می‌کند که به \f3AlternateJstatdServerName\fR متصل شده است\&. .sp .nf \f3rmiregistry 2020&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020\fP .fi .nf \f3 \-n AlternateJstatdServerName\fP .fi .nf \f3\fP .fi .sp .SS "جلوگیری از ایجاد رجیستری درون‌فرآیندی RMI (STOP THE CREATION OF AN IN-PROCESS RMI REGISTRY)" این مثال یک نشست \f3jstatd\fR را راه‌اندازی می‌کند که در صورت پیدا نشدن رجیستری RMI، آن را ایجاد نمی‌کند\&. این مثال فرض می‌کند یک رجیستری RMI از قبل در حال اجرا است\&. اگر رجیستری RMI در حال اجرا نباشد، پیام خطایی نمایش داده می‌شود\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-nr\fP .fi .nf \f3\fP .fi .sp .SS "فعال‌سازی ثبت وقایع RMI (ENABLE RMI LOGGING)" این مثال یک نشست \f3jstatd\fR را با قابلیت‌های فعال‌شده برای ثبت وقایع RMI راه‌اندازی می‌کند\&. این روش به عنوان کمکی برای عیب‌یابی یا پایش فعالیت‌های سرور مفید است\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3 \-J\-Djava\&.rmi\&.server\&.logCalls=true\fP .fi .nf \f3\fP .fi .sp .SH "همچنین ببینید (SEE ALSO)" .TP 0.2i \(bu java(1) .TP 0.2i \(bu jps(1) .TP 0.2i \(bu jstat(1) .TP 0.2i \(bu rmiregistry(1) .RE .br 'pl 8.5i 'bp