بهمن ۹ ۱۳۹۶

آموزش کنترل سرویس ها با 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

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

 


دی ۲۵ ۱۳۹۶

آموزش نصب دیتابیس TILE38 در لینوکس

tile38-logo

برای ذخیره ی اطلاعات، دیتابیس های مختلفی وجود دارد که هر کدام کاربرد خاص خود را دارند.TILE38 یک دیتابیس open source می باشد که قابلیت ذخیره ی اطلاعات جغرافیایی،شاخص مکانی و geofence را به صورت realtime دارا می باشد.

برخی از ویژگی های دیتابیس tile38 بنا به گفته ی سایت رسمی آن به شرح زیر می باشند :

 

  • Spatial index with search methods such as NEARBY, WITHIN, and INTERSECTS.
  • Realtime geofencing through persistent sockets or webhooks.
  • Object types of lat/lon, bbox, Geohash, GeoJSON, QuadKey, and XYZ tile.
  • Support for lots of Clients Libraries written in many different languages.
  • Variety of client protocols, including http (curl), websockets, telnet, and the Redis RESP.
  • Server responses are RESP or JSON.
  • Full command line interface.
  • Leader / follower replication.
  • In-memory database that persists on disk.

 

 

نصب tile38 در لینوکس :

 

روند نصب دیتابیس tile38 بسیار ساده می باشد.در این مطلب جهت نصب tile38 از توزیع CentOS 7.4 x86-64  استفاده شده است.برای نصب ابتدا به شاخه ی زیر بروید :

 

 

#cd /opt

 

اکنون از صفحه releases پروژه ی tile38 در github آخرین نسخه ی آن را بر اساس سیستم عامل خود دانلود کنید :

 

https://github.com/tidwall/tile38/releases

#wget -c https://github.com/tidwall/tile38/releases/download/1.10.0/tile38-1.10.0-linux-amd64.tar.gz

 

اکنون فایل دانلود شده را از حالت فشرده خارج نمایید :

 

#tar -xzvf tile38-1.10.0-linux-amd64.tar.gz

سپس وارد پوشه ی استخراج شده بروید :

 

 

#cd tile38-1.10.0-linux-amd64

 

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

 

#./tile38-server

 

توجه داشته باشید با اجرای دستور بالا tile38 در foreground اجرا خواهد شد.برای اجرا شدن آن در background می توان از systemd استفاده کرد.برای اینکار ابتدا فایل زیر را ایجاد کنید :

 

# vim /usr/lib/systemd/system/tile38.service

سپس خطوط زیر را درون آن وارد کنید و فایل را ذخیره کنید :

[Unit]
Requires=network.target
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/tile38-1.10.0-linux-amd64/tile38-server

ExecStop=/usr/bin/pkill tile38-server

[Install]
WantedBy=multi-user.target

 

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

 

 

# systemctl status tile38.service

# systemctl start tile38.service

# systemctl stop tile38.service

# systemctl enable tile38.service

# systemctl disable tile38.service

 

 

اگر از firewalld استفاده می کنید اکنون باید port 9851 که مربوط به سرویس tile38 است را باز کنید :

 

#firewall-cmd --zone=public --add-port=9851/tcp
#firewall-cmd --zone=public --add-port=9851/tcp --permanent

 

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