HOSTNAMECTL(1) hostnamectl HOSTNAMECTL(1)

hostnamectl - کنترل نام میزبان و متادیتای سیستم

hostnamectl [OPTIONS...] {COMMAND}

از hostnamectl می‌توان برای پرس‌وجو و تغییر نام میزبان سیستم و تنظیمات مرتبط با آن استفاده کرد.

سرویس systemd-hostnamed.service(8) و این ابزار میان سه نوع نام میزبان تمایز قائل می‌شوند: نام میزبان کاربرپسند ("pretty") که ممکن است شامل انواع نویسه‌های خاص باشد (مانند "Lennart's Laptop")، نام میزبان ایستا ("static") که همان نام میزبان پیکربندی‌شده توسط کاربر است (مانند "lennarts-laptop")، و نام میزبان گذرا ("transient") که مقداری جایگزین است و از پیکربندی شبکه دریافت می‌شود (مانند "node12345678"). در صورتی که نام میزبان ایستا روی مقداری معتبر تنظیم شده باشد، از نام میزبان گذرا استفاده نمی‌شود.

توجه داشته باشید که نام میزبان pretty محدودیت چندانی در مورد نویسه‌ها و طول مورد استفاده ندارد، در حالی که نام‌های میزبان static و transient به نویسه‌های معمولاً پذیرفته‌شده در نام‌های دامنه اینترنتی و حداکثر ۶۴ نویسه محدود هستند (محدودیت ۶۴ نویسه از محدودیت‌های لینوکس است).

برای مقداردهی اولیه نام میزبان سیستم در ایمیج‌های سیستمیِ متصل‌شده (اما بوت‌نشده)، از systemd-firstboot(1) استفاده کنید.

دستورات زیر پشتیبانی می‌شوند:

status

نمایش نام میزبان سیستم و اطلاعات مرتبط با آن. در صورت مشخص نشدن هیچ دستوری، این حالت پیش‌فرضِ ضمنی است.

اضافه‌شده در نگارش ۱۹۵.

hostname [NAME]

اگر آرگومانی داده نشود، نام میزبان سیستم چاپ می‌شود. اگر آرگومان اختیاری NAME ارائه شود، دستور نام میزبان سیستم را به NAME تغییر می‌دهد. به‌طور پیش‌فرض، این کار همزمان نام‌های میزبان pretty، static و transient را تغییر خواهد داد؛ با این حال، اگر یک یا چند مورد از --static، --transient، --pretty استفاده شوند، تنها نام‌های میزبان انتخابی تغییر می‌یابند. اگر نام میزبان pretty تنظیم شود و static یا transient نیز همزمان در حال تنظیم باشند، نام میزبان مشخص‌شده پیش از به‌روزرسانی موارد اخیر، از نظر مجموعه نویسه‌های مورد استفاده ساده‌سازی می‌شود. این کار با حذف نویسه‌های خاص و فاصله‌ها انجام می‌گیرد. این امر تضمین می‌کند که نام‌های میزبان pretty و static همواره پیوند نزدیکی با یکدیگر داشته باشند و در عین حال از قوانین اعتبار نام خاص پیروی کنند. اگر تنها نام‌های میزبان transient یا static تنظیم شوند و نام میزبان pretty دست‌نخورده باقی بماند، این ساده‌سازی رشته نام میزبان انجام نخواهد شد.

نام‌های میزبان static و transient هر یک باید یا یک برچسب DNS منفرد باشند (رشته‌ای متشکل از نویسه‌های کوچک ۷ بیتی ASCII و بدون فاصله یا نقطه، محدود به قالب مجاز برای برچسب‌های نام دامنه DNS)، یا توالی‌ای از چنین برچسب‌هایی که با تک‌نقطه از هم جدا شده و یک FQDN معتبر DNS را تشکیل می‌دهند. نام میزبان باید حداکثر ۶۴ نویسه باشد که این یک محدودیت لینوکس است (DNS نام‌های طولانی‌تر را مجاز می‌داند).

اگر نویسه علامت سؤال "?" در نام میزبان ظاهر شود، هنگام اعمال، به‌صورت خودکار، امن و قطعی از طریق هش رمزنگاری، با یک نویسه هگزادسیمال برگرفته از machine-id(5) جایگزین می‌شود. برای مثال: "foobar-????-????" بسته به شناسه ماشین محلی، به‌طور خودکار به "foobar-92a9-061c" یا مشابه آن بسط می‌یابد.

اضافه‌شده در نگارش ۲۴۹.

icon-name [NAME]

اگر آرگومانی داده نشود، نام آیکون سیستم را چاپ می‌کند. اگر آرگومان اختیاری NAME ارائه شود، دستور نام آیکون را به NAME تغییر می‌دهد. نام آیکون توسط برخی از برنامه‌های گرافیکی برای نمایش بصری این میزبان به کار می‌رود. نام آیکون باید از Icon Naming Specification[1] پیروی کند.

اضافه‌شده در نگارش ۲۴۹.

chassis [TYPE]

اگر آرگومانی داده نشود، نوع شاسی (chassis) را چاپ می‌کند. اگر آرگومان اختیاری TYPE ارائه شود، دستور نوع شاسی را به TYPE تغییر می‌دهد. نوع شاسی توسط برخی از برنامه‌های گرافیکی برای نمایش بصری میزبان یا تغییر تعامل با کاربر استفاده می‌شود. در حال حاضر، انواع شاسی زیر تعریف شده‌اند: "desktop" (رایانه رومیزی)، "laptop" (لپ‌تاپ)، "convertible" (تبدیل‌پذیر)، "server" (سرور)، "tablet" (تبلت)، "handset" (گوشی همراه)، "watch" (ساعت هوشمند)، "embedded" (تعبیه‌شده)، و همچنین انواع شاسی ویژه "vm" (ماشین مجازی) و "container" (کانتینر) برای سیستم‌های مجازی‌سازی‌شده‌ای که فاقد شاسی فیزیکی بی‌واسطه هستند.

اضافه‌شده در نگارش ۲۴۹.

deployment [ENVIRONMENT]

اگر آرگومانی داده نشود، محیط استقرار را چاپ می‌کند. اگر آرگومان اختیاری ENVIRONMENT ارائه شود، دستور محیط استقرار را به ENVIRONMENT تغییر می‌دهد. آرگومان ENVIRONMENT باید یک تک‌کلمه بدون هرگونه نویسه کنترلی باشد. یکی از موارد زیر پیشنهاد می‌شود: "development" (توسعه)، "integration" (یکپارچه‌سازی)، "staging" (پیش‌تولید)، "production" (عملیاتی).

اضافه‌شده در نگارش ۲۴۹.

location [LOCATION]

اگر آرگومانی داده نشود، رشته مکان سیستم را چاپ می‌کند. اگر آرگومان اختیاری LOCATION ارائه شود، دستور رشته مکان سیستم را به LOCATION تغییر می‌دهد. آرگومان LOCATION باید یک رشته با قالب آزاد و کاربرپسند باشد که در صورت معلوم و مرتبط بودن، مکان فیزیکی سیستم را توصیف کند. این رشته می‌تواند به کلیّت "Berlin, Germany" یا به جزئیات "Left Rack, 2nd Shelf" باشد.

اضافه‌شده در نگارش ۲۴۹.

tags [TAG...]

اگر آرگومانی داده نشود، برچسب‌های ماشینِ پیکربندی‌شده کنونی را به‌صورت فهرستی با جداکننده دونقطه چاپ می‌کند. اگر یک یا چند آرگومان TAG ارائه شوند، دستور برچسب‌های پیکربندی‌شده را با مقادیر مشخص‌شده جایگزین می‌نماید. هر آرگومان می‌تواند خود فهرستی از برچسب‌ها با جداکننده دونقطه باشد، به‌طوری که برچسب‌ها را می‌توان به‌صورت چندین آرگومان یا یک آرگومان جداشده با دونقطه یا هر ترکیبی از آن‌ها مشخص کرد. برچسب‌های تکراری حذف شده و فهرست نهایی پیش از ذخیره‌سازی مرتب می‌شود. برای حذف تمام برچسب‌ها، دستور را با یک آرگومان رشته خالی فراخوانی کنید.

برچسب‌های ماشین شناسه‌های کوتاهی هستند که می‌توان برای دسته‌بندی و گروه‌بندی ماشین‌ها با اهداف مدیریتی استفاده کرد؛ برای نمونه جهت شناسایی نقشی که یک ماشین در یک استقرار ایفا می‌کند، ناوگان یا واحد سازمانی که به آن تعلق دارد، یا هر ویژگی دیگری که توسط مدیر سیستم تعریف شده باشد. هر برچسب منفرد باید ۱ تا ۲۵۵ نویسه طول داشته باشد و فقط از نویسه‌های الفبایی-عددی ASCII، "-" و "." تشکیل شود. این برچسب‌ها در فیلد TAGS= از پرونده /etc/machine-info ذخیره می‌شوند؛ برای جزئیات به machine-info(5) مراجعه کنید. آن‌ها همچنین می‌توانند در تنظیمات واحد ConditionMachineTag=/AssertMachineTag= برای مطابقت استفاده شوند؛ به systemd.unit(5) مراجعه نمایید.

اضافه‌شده در نگارش ۲۶۱.

گزینه‌های زیر پشتیبانی می‌شوند:

--static, --transient, --pretty

اگر status فراخوانی شود (یا هیچ دستور صریحی داده نشده باشد) و یکی از این سوییچ‌ها مشخص گردد، hostnamectl تنها همین نام میزبان انتخابی را چاپ می‌کند.

اگر همراه با hostname استفاده شود، تنها نام‌های میزبان انتخابی به‌روزرسانی خواهند شد. وقتی بیش از یکی از این سوییچ‌ها مشخص شود، تمام نام‌های میزبان مشخص‌شده به‌روزرسانی می‌شوند.

اضافه‌شده در نگارش ۱۹۵.

-H, --host=

عملیات را از راه دور اجرا می‌کند. یک نام میزبان، یا یک نام کاربری و نام میزبان که با "@" از هم جدا شده‌اند را برای اتصال مشخص کنید. پس از نام میزبان می‌توان به صورت اختیاری پورت شنود ssh را با جداکننده ":" و سپس نام کانتینر را با جداکننده "/" مشخص کرد تا مستقیماً به کانتینری خاص روی میزبان مورد نظر وصل شود. این کار از SSH برای برقراری ارتباط با نمونه مدیر ماشین راه دور استفاده خواهد کرد. نام‌های کانتینر را می‌توان با machinectl -H HOST فهرست کرد. نشانی‌های IPv6 را داخل براکت قرار دهید.

-M, --machine=

عملیات را روی یک کانتینر محلی اجرا می‌کند. نام یک کانتینر را برای اتصال مشخص کنید، که می‌تواند اختیاری با یک نام کاربری برای ورود و نویسه جداکننده "@" همراه باشد. اگر رشته ویژه ".host" به‌جای نام کانتینر استفاده شود، اتصال به سیستم محلی برقرار می‌شود (که برای اتصال به گذرگاه کاربری کاربری خاص مفید است: "--user --machine=lennart@.host"). اگر ساختار "@" به کار نرود، اتصال با کاربر root برقرار می‌گردد. اگر ساختار "@" استفاده شود، می‌توان سمت چپ یا سمت راست را حذف کرد (اما نه هر دو را)، که در این حالت نام کاربری محلی و ".host" به‌صورت ضمنی در نظر گرفته می‌شوند.

--no-ask-password

برای احراز هویت در عملیات‌های ممتاز (دارای دسترسی ریشه) از کاربر سؤالی نمی‌پرسد.

-h, --help

یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود.

--version

اطلاعات نگارش برنامه را چاپ کرده و خارج می‌شود.

--json=MODE

خروجی را در قالب JSON نمایش می‌دهد. یکی از مقادیر زیر را می‌پذیرد: "short" (برای کوتاه‌ترین خروجی ممکن بدون فواصل خالی اضافه یا شکستگی خط)، "pretty" (برای نگارش خوانای همان خروجی، با فاصله‌گذاری و شکست خط مناسب) یا "off" (برای غیرفعال کردن خروجی JSON، که حالت پیش‌فرض است).

-j

در صورت اجرا در ترمینال، معادل --json=pretty و در غیر این صورت معادل --json=short است.

در صورت موفقیت 0 و در غیر این صورت یک کد خطای غیرصفر بازگردانده می‌شود.

systemd(1), hostname(1), hostname(5), machine-info(5), systemctl(1), systemd-hostnamed.service(8), systemd-firstboot(1)

1.
Icon Naming Specification
systemd 261.2