IT Guys👾 – Telegram
429 subscribers
120 photos
183 videos
27 files
284 links
نکاتی که تو مسیر یادگیری بدست آوردیم رو باهاتون به اشتراک میزاریم. اين كانال رو به عنوان سرگرمی نگاه كنيد.
شما هم اگر نکته ای داشتید ، چه بصورت متن ، عکس و یا صدا به نشانی ربات زیر با ما به اشتراک بگذارید ، با تشکر.

Bot ID : https://news.1rj.ru/str/bootrampbot🤖
Download Telegram
چرا کانتینر پس از توقف دستی ری‌استارت نمی‌شود؟
سیاست always به این شکل کار می‌کند:

اگر کانتینر به‌صورت غیرمنتظره متوقف شود (مثلاً به‌خاطر خطا یا خاموش شدن سیستم)، Docker آن را مجدداً استارت می‌کند.
اما اگر شما به‌صورت دستی و از طریق دستور docker stop یا docker kill کانتینر را متوقف کنید، Docker کانتینر را مجدداً استارت نمی‌کند، زیرا فرض می‌کند که شما به‌طور عمدی آن را متوقف کرده‌اید.
اگر قصد دارید کانتینر بعد از هر توقف، حتی توقف دستی، به‌طور خودکار استارت شود، باید از یک اسکریپت خارجی یا ابزار مانیتورینگ استفاده کنید که دائماً وضعیت کانتینر را بررسی کرده و در صورت توقف، آن را مجدداً استارت کند. اما به‌طور پیش‌فرض، Docker سیاست ری‌استارت always را برای متوقف کردن دستی اعمال نمی‌کند.
برای این‌که یک راه‌حل ساده داشته باشی که کانتینر بعد از توقف دستی هم دوباره به‌طور خودکار استارت شود، می‌توانی یک اسکریپت شِل کوچک بنویسی که وضعیت کانتینر را بررسی کند و اگر متوقف شده بود، دوباره آن را استارت کند.

اسکریپت ساده:
#!/bin/bash

CONTAINER_NAME="<container_name_or_id>"

while true; do
STATUS=$(docker inspect -f '{{.State.Status}}' $CONTAINER_NAME)

if [ "$STATUS" != "running" ]; then
echo "Container $CONTAINER_NAME is not running. Starting it now..."
docker start $CONTAINER_NAME
fi

sleep 10 # بررسی وضعیت هر ۱۰ ثانیه یکبار
done

توضیحات:
اسکریپت هر ۱۰ ثانیه وضعیت کانتینر را بررسی می‌کند.
اگر کانتینر در وضعیت running نباشد، دستور docker start اجرا شده و کانتینر استارت می‌شود.
متغیر CONTAINER_NAME را به نام یا ID کانتینر موردنظر تغییر بده.
نحوه اجرای اسکریپت:
اسکریپت را در یک فایل ذخیره کن. مثلاً به نام container-watch.sh.
به فایل دسترسی اجرایی بده:
chmod +x container-watch.sh
اسکریپت را اجرا کن:
./container-watch.sh

این اسکریپت کانتینر را به‌طور مداوم مانیتور می‌کند و اگر متوقف شد (حتی به‌صورت دستی)، آن را مجدداً استارت می‌کند.
برای این‌که این اسکریپت به عنوان یک سرویس سیستم‌عامل (systemd service) همیشه در بک‌گراند اجرا شود، می‌توانید آن را به‌صورت یک سرویس systemd تنظیم کنید. این روش به شما اجازه می‌دهد که اسکریپت به‌صورت خودکار با بوت شدن سیستم شروع شود و در صورت نیاز به‌سادگی مدیریت شود.

مراحل ایجاد سرویس systemd:
1. ایجاد فایل سرویس:
ابتدا فایل اسکریپت را در یک دایرکتوری مناسب مثل /usr/local/bin کپی کنید. مثلاً:
sudo cp container-watch.sh /usr/local/bin/
سپس یک فایل سرویس جدید در دایرکتوری systemd ایجاد کنید:
sudo nano /etc/systemd/system/container-watch.service
2. محتوای فایل سرویس:
فایل سرویس را به‌صورت زیر تنظیم کنید:
[Unit]
Denoscription=Container Watch Service
After=docker.service
Requires=docker.service

[Service]
ExecStart=/usr/local/bin/container-watch.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target

توضیحات:
ExecStart: مسیر کامل اسکریپت شما.
Restart=always: به سرویس می‌گوید اگر اسکریپت متوقف شد، آن را دوباره اجرا کند.
User=root: اسکریپت به عنوان کاربر root اجرا می‌شود. (در صورت نیاز می‌توانید کاربر دیگری را انتخاب کنید)
After=docker.service و Requires=docker.service: این خطوط تضمین می‌کنند که سرویس بعد از اجرای Docker شروع می‌شود.
3. ریلود و فعال‌سازی سرویس:
بعد از ایجاد فایل سرویس، systemd را ریلود کنید تا تغییرات اعمال شوند:
sudo systemctl daemon-reload
4. بررسی وضعیت سرویس:
برای مشاهده وضعیت سرویس می‌توانید از دستور زیر استفاده کنید:
sudo systemctl status container-watch.service
Forwarded from Milad Mahmoodian
https://gparted.org/download.php

GParted is a free partition manager that enables you to resize, copy, and move partitions without data loss.
Forwarded from Milad Mahmoodian
Webmin
Forwarded from Milad Mahmoodian
sudo apt update
sudo apt upgrade
sudo apt install software-properties-common apt-transport-https wget
Forwarded from Milad Mahmoodian
wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
Forwarded from Milad Mahmoodian
echo "deb http://download.webmin.com/download/repository sarge contrib" | sudo tee /etc/apt/sources.list.d/webmin.list
Forwarded from Milad Mahmoodian
sudo apt update
sudo apt install webmin
Forwarded from Milad Mahmoodian
https://localhost:10000/
Forwarded from Milad Mahmoodian
نصب Webmin روی اوبنتو 20.04
Forwarded from Milad Mahmoodian
:local logTime [/system clock get time];
:local logDate [/system clock get date];
:local interfaceName Dubai;
:local event UP;
:local logFileName "interface-logs.txt";
:local logMessage ("$logDate $logTime - Interface: $interfaceName - Event: $event");
:local fileCount [:len [/file find name="$logFileName"]];
:if ($fileCount = 0) do={/file print file="$logFileName"};
/file set "$logFileName" contents=([/file get "$logFileName" contents] . "\n$logMessage");
Forwarded from Milad Mahmoodian
برای خروجی لاگ قطعی و وصلی اینترفیس ها
د ر ادامه :
/tool netwatch
add host=8.8.8.8 interval=1m up-noscript="/system noscript run LogInterfaceEvent ether1 up" down-noscript="/system noscript run LogInterfaceEvent ether1 down"

میاد توی netwatch که بگه اگر قطعی بود چه کن و اگر وصل بود چه کن
Forwarded from Milad Mahmoodian
Forwarded from Milad Mahmoodian