فروردین ۲۰ ۱۳۹۷

غیرفعال کردن دائمی حافظه‌ی Swap در لینوکس

swap

در مطالب قبلی در مورد حافظه‌ی swap توضیح داده شد و نحوه ی خالی کردن آن نیز شرح داده شد.اکنون در این مطلب قصد داریم تا حافظه‌ی swap را به صورت کامل و برای همیشه غیرفعال کنیم.

برای اینکار ابتدا جهت غیرفعال کردن swap دستور پایین را اجرا کنید :

 

#swapoff -a

 

در این حالت swap غیرفعال شده است ولی به صورت دائمی نیست و با reboot شدن سیستم، حافظه ی swap دوباره فعال خواهد شد.برای جلوگیری از فعال شدن آن پس reboot شدن سیستم و غیرفعال کردن دائمی آن کافیست تا فایل تنظیمات مربوط به mount شدن پارتیشن ها را باز کنید :

 

#vi /etc/fstab

 

اکنون خطی که مربوط به swap می باشد را پیدا کنید و جلوی آن علامت # قرار دهید تا به حالت comment در آید.برای نمونه تصویر پایین را مشاهده کنید :

 

 

fstab

 

پس از دخیره تغییرات در فایل اکنون کافیست تا یکبار سیستم را reboot کنید یا اینکه از دستور پایین استفاده کنید :

 

#mount -a

اکنون با انجام این مراحل حافظه‌ی swap بر روی سیستم به صورت دائم غیرفعال شده است.جهت مشاهده فضای swap بر روی سیستم نیز می توانید از دستور پایین استفاده کنید :

 

#swapon -s

امید است تا از این مطلب استفاده لازم را برده باشد.

شاد و فدورایی باشید.

 

 


اسفند ۲۱ ۱۳۹۶

بررسی بودن یا نبودن فایل یا پوشه در شل اسکریپت

bash

در برخی اوقات ممکن است بخواهید وجود یک فایل یا پوشه را از طریق خط فرمان و یا شل اسکریپت بررسی کنید.برای اینکار می توان از دستور if به همراه اپراتورهای مربوطه این کار را انجام داد.

به عنوان نمونه می خواهیم بررسی کنیم که آیا فایل etc/hosts/ وجود دارد یا نه،برای اینکار می توان دستور پایین را اجرا کرد :

 

[ -f /etc/hosts ] && echo “Found” || echo “Not found”

 

در صورتی که فایل وجود داشته باشد Found نمایش داده خواهد شد و در عیر اینصورت Not found نمایش داده خواهد شد.

همین کار را نیز می توان به روش پایین و به صورت یک شل اسکریپت هم انجام داد :

 

#!/bin/bash
file=”/etc/hosts”
if [ -f “$file” ]
then
echo “$file found.”
else
echo “$file not found.”
fi

 

اپراتورهایی که می توان استفاده کرد به صورت زیر می باشند :

-b FILE
FILE exists and is block special

-c FILE
FILE exists and is character special

-d FILE
FILE exists and is a directory

-e FILE
FILE exists

-f FILE
FILE exists and is a regular file

-g FILE
FILE exists and is set-group-ID

-G FILE
FILE exists and is owned by the effective group ID

-h FILE
FILE exists and is a symbolic link (same as -L)

-k FILE
FILE exists and has its sticky bit set

-L FILE
FILE exists and is a symbolic link (same as -h)

-O FILE
FILE exists and is owned by the effective user ID

-p FILE
FILE exists and is a named pipe

-r FILE
FILE exists and read permission is granted

-s FILE
FILE exists and has a size greater than zero

-S FILE
FILE exists and is a socket

-t FD file descriptor FD is opened on a terminal

-u FILE
FILE exists and its set-user-ID bit is set

-w FILE
FILE exists and write permission is granted

-x FILE
FILE exists and execute (or search) permission is granted

 

بنابراین به صورت کلی می توان از این ساختار دستوری استفاده کرد :

 

 

if [ operator FileName ]
then
echo “FileName – Found, take some action here”
else
echo “FileName – Not found, take some action here”
fi

 

چنانچه قصد داشته باشید دستور شما فقط در یک خط نوشته شود می توان از نمونه ی پایین استفاده کنید :

 

file1=”/etc/hosts” ; if [ -f “$file1” ] ; then echo “$file1 found.” ; else echo “$file1 not found.” ; fi

 

امید است تا از این مطلب استفاده ی لازم را برده باشید.


بهمن ۲۳ ۱۳۹۶

آموزش تنظیم Hostname در خط فرمان

change-hostname

نام میزبان یا همان Hostname یک نام یکتا می باشد که به هر سیستم  تخصیص داده می شود.در این مطلب قصد داریم تا نحوه ی پیکربندی نام میزبان را از طریق خط فرمان آموزش دهیم.

جهت نمایش hostname می توانید از دستورهای پایین استفاده کنید :

 

# hostname
# hostname -s
# hostname -f

  • سوئیچ s- نام کوتاه کامپیوتر را نمایش می دهید.(فقط hostname)
  • سوئیچ f- کامپیوتر FQDN در شبکه را نمایش می دهد.(فقط زمانی که کامپیوتر جزئی از یک domain یا realm باشد و FQDN ان تنظیم شده باشد.)

 

روش دیگر برای نمایش نام میزبان cat کردن فایل hostname می باشد :

 

# cat /etc/hostname

اکنون جهت تغییر hostname و با تنظیم آن می توانید از دستور پایین استفاده کنید :

 

 

# hostnamectl set-hostname your-new-hostname

نکته اینکه بجای your-new-hostname باید نام مورد نطر خود را بنویسید.اکنون جهت نمایش hostname می توانید از دستوراتی که در بالا گفته شد استفاده کنید یا اینکه از دستور پایین استفاده کنید :

 

 

#hostnamectl

روش دیگر برای تنظیم hostname ماشین، ویرایش فایل hostname می باشد :

 

 

# vi /etc/hostname

یکی دیگر از روش ها جهت نمایش و ویرایش hostname استفاده از sysctl می باشد.جهت نمایش hostname نیز می توانید از این دستور استفاده کنید :

 

 

# sysctl kernel.hostname

جهت تغییر hostname می توانید از این دستور استفاده کنید :

 

 

# sysctl kernel.hostname=new-hostname

 

نکته اینکه این تغییر به صورت موقت می باشد.جهت اعمال تغییر به صورت دائمی این دستور را استفاده کنید :

 

 

# sysctl -w kernel.hostname=new-hostname

 

یکی دیگر از روشهای نمایش و پیکربندی hostname استفاده از دستور nmtui می باشد :

 

#nmtui

پس از اجرای دستور بالا یک برنامه ای تقریبا گرافیکی در خط فرمان اجرا خواهد شد که یکی از امکانات آن ویرایش hostname می باشد.یا اینکه اگر تمایل دارید با استفاده از nmtui به صورت مستقیم فقط hostname را تغییر دهید کافیست تا از این روش استفاده کنید :

 

 

# nmtui-hostname your-new-hostname

اکنون جهت نمایش hostname می توانید از دستوراتی که گفته شد استفاده کنید.

امید است تا از این مطلب استفاده لازم را برده باشد.شاد و فدورایی باشید.

 


بهمن ۲۱ ۱۳۹۶

آموزش نصب و پیکربندی RabbitMQ

rabbitmq-logo

rabbitmq یک نرم افزار message broker و  open source  می باشد که گاهی message-oriented middleware نیز خوانده می شود.rabbitmq در اصل برای Advanced Message Queuing Protocol یا به اختصار AMQP پیاده سازی شده است،هر چند معماری آن به گونه ای می باشد که با استفاده از پلاگین هایی قابلیت پشتیبانی از چندین پروتکل دیگر مانند MQTT و STOMP و سایر پروتکل ها را دارا می باشد.

نرم افزار rabbitmq با زبان Erlang نوشته شده است و قابلیت نصب بر روی اکثر سیستم عامل ها را دارا می باشد.در این مطلب قصد داریم تا rabbitmq نسخه ی ۳٫۷ را بر روی CentOS 7.4 x86-64 نصب کنیم.

 

نصب RabbitMQ :

یکی از پیش نیازهای rabbitmq نصب شدن erlang می باشد.نکته اینکه هر کدام از نسخه های rabbitmq نیاز به نسخه ی خاصی از erlang می باشد.برای درک اینکه چه نسخه ای از rabbitmq نیاز به کدام نسخه از erlang می باشد کافیست تا به لینک پایین مراجعه کنید :

 

https://www.rabbitmq.com/which-erlang.html

از آنجایی که ما قصد داریم تا rabbitmq 3.7 را نصب کنیم پس بنابراین نسخه ی erlang که پشتیبانی می شود بین  Erlang/OTP 19.3 تا Erlang/OTP 20.2.x می باشد.بسته ی erlang در مخازن epel وحود دارد ولی از آنجایی که نسخه ی آن پایین می باشد ما نیاز داریم تا erlang نسخه ی بالاتر را نصب کنیم به همین خاطر ابتدا مخزن Erlang Solutions را نصب کنید :

 

#yum install -y https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

 

اکنون بسته ی rabbitmq را دانلود کنید که برای دریافت آن می توانید از لینک پایین استفاده کنید :

 

https://www.rabbitmq.com/install-rpm.html

برای دانلود کافیست تا این دستور را اجرا کنید :

 

 

#wget -c https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.3/rabbitmq-server-3.7.3-1.el7.noarch.rpm

 

 

 

اکنون جهت نصب rabbitmq کافیست تا دستور زیر را اجرا کنید :

 

 

#yum install rabbitmq-server-3.7.3-1.el7.noarch.rpm

 

اگر از SELinux استفاده می کنید این دستور را اجرا کنید :

 

#setsebool -P nis_enabled 1

 

 

اگر از firewalld استفاده می کنید پورت های زیر را باز کنید :

 

 

#firewall-cmd --zone=public --permanent --add-port=4369/tcp
#firewall-cmd --zone=public --permanent --add-port=25672/tcp
#firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
#firewall-cmd --zone=public --permanent --add-port=15672/tcp
#firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
#firewall-cmd --zone=public --permanent --add-port=8883/tcp
#firewall-cmd --zone=public --permanent --add-port=1883/tcp
#firewall-cmd --reload

اکنون می توانید با استفاده از systemd  سرویس rabbitmq را start و enable کنید :

 

#systemctl start rabbitmq-server
#systemctl enable rabbitmq-server

 

جهت بررسی وضعیت rabbitmq می توانید از این دستور استفاده کنید :

 

#rabbitmqctl status

جهت فعال کردن کنسول مدیریتی تحت وب rabbitmq کافیست تا این دستور را اجرا کنید :

 

 

# rabbitmq-plugins enable rabbitmq_management

سپس این دستور را اجرا کنید :

 

 

#chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

اکنون جهت ایجاد کاربر و تنظیم مجوزهای آن کافیست تا دستورهای پایین را اجرا کنید :

#rabbitmqctl add_user hos7ein mypassword
#rabbitmqctl set_user_tags hos7ein administrator
#rabbitmqctl set_permissions -p / hos7ein ".*" ".*" ".*"

 

 

نکته اینکه به جای hos7ein و mypassword نام کاربری و پسورد مورد نظر خود را بنویسید.اکنون جهت دسترسی به پنل تحت وب rabbitmq کافیست تا آدرس زیر را در مروگر وب خود وارد کنید :

 

 

 

 

http://[server-ip]:15672

نکته اینکه به جای server-ip باید آدرس سرور خود را بنویسید.در پایین تصویری از پنل تحت وب rabbitmq را مشاهده می کنید :

 

 

 

rabbitmq

 

امید است تا از این مطلب استفاده ی لازم را برده باشید.

 


بهمن ۹ ۱۳۹۶

آموزش کنترل سرویس ها با systemd در سرور راه دور

systemd

امروزه اکثر توزیع های سیستم عامل گنو/لینوکس از systemd استفاده می کنند.با استفاده از systemd می توان سیستم و سرویس ها را مدیریت کرد که با اجرای دستور systemctl در خط فرمان این امکان وجود دارد که سرویس ها را بر روی ماشین محلی (local machine) و یا یک ماشین راه دور (remote server) مدیریت کرد.

برای کنترل سرویس های ماشین راه دور با استفاده از systemd بهتر است تا از public/private key pairs برای اتصال از طریق SSH استفاده کنید تا نیاز به وارد کردن password برای ماشین یا ماشین های راه دور نباشد.

برای کنترل سرویس های ماشین راه دور کافیست تا دستور systemctl را به همراه H- یا  host- –  استفاده کنید.به عنوان نمونه فرض کنید قصد داریم تا به کاربر root از سرور راه دور به آدرس fedorafans.com وصل شویم و وضعیت سرویس httpd آن را بررسی کنیم :

 

$systemctl --host root@fedorafans.com status httpd.service

 

 

یا می توان از این دستور نیز استفاده کرد :

 

$systemctl -H root@fedorafans.com status httpd.service

همچنین شما می توانید سرویس مورد نظر را stop,start.restart,enable,disable و … کنید :

 

systemctl --host root@fedorafans.com start httpd.service
systemctl --host root@fedorafans.com stop httpd.service
systemctl --host root@fedorafans.com restart httpd.service
systemctl --host root@fedorafans.com enable httpd.service
systemctl --host root@fedorafans.com disable httpd.service

 

برای اطلاعات بیشتر در مورد دستور systemctl کافیست تا راهنمای آن را مطالعه کنید :

 

$man systemctl

امید است تا از این مطلب استفاده لازم را برده باشید.

 


دی ۱۹ ۱۳۹۶

بررسی باگ های Spectre و Meltdown بر روی لینوکس

spectre_and_meltdown

 

حتما تا الان خبر آسیب پذیری Meltdown و Spectre که باگ هایی مربوط به CPU می باشند به گوش تان رسیده است.در این مطلب قصد دارم تا به شما اسکریپتی را معرفی کنم که این باگ ها رو تشخیص می دهد.این اسکریپت CPU های Intel/AMD/ARM را برای تشخیص این باگ ها بررسی می کند.

ابتدا اسکریپت را بر روی سیستم مورد نظر دانلود کنید :

 

$cd /tmp

$wget -c  https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh

یا از این روش استفاده کنید :

 

$git clone https://github.com/speed47/spectre-meltdown-checker.git

 

اکنون کافیست تا اسکریپت spectre-meltdown-checker.sh را جهت بررسی باگ های Spectre و Meltdown اجرا کنید :

 

 

#sh spectre-meltdown-checker.sh

جهت اطلاعات بیشتر در مورد این اسکریپت می توانید به github آن مراجعه کنید :

 

https://github.com/speed47/spectre-meltdown-checker

امید است تا از این مطلب استفاده لازم را برده باشید.