| کانال گنو/لینوکس |
2.82K subscribers
28 photos
2 videos
2 files
44 links
⭕️ کانال گنو/لینوکس دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
تو این پست می‌ریم سراغ یه کار کاملاً عملی که هر ادمین لینوکسی sooner or later بهش نیاز داره: یه اسکریپت Backup ساده با Bash و زمان‌بندی با cron.

سناریو رو اینطوری فرض کن 👇
یه سرور داری که توی مسیر /var/www پروژه‌هات هست و می‌خوای هر شب یه Backup فشرده ازش گرفته بشه و بره توی یه پوشه‌ی جدا، بدون این‌که یادت بمونه هر شب دستی این کارو انجام بدی.

ایده‌ی کلی:

• استفاده از tar برای ساخت فایل آرشیو فشرده
• نام‌گذاری Backup براساس تاریخ (برای ردیابی راحت)
• زمان‌بندی با cron که خودش اتوماتیک اجراش کنه

مستندات رسمی که این ایده روش‌هاش رو پوشش می‌ده:
GNU tar Manual
GNU Bash Reference Manual
man crontab(5)

حالا بریم سراغ یه نمونه‌ی واقعی 👇

#!/usr/bin/env bash

SRC_DIR="/var/www"
BACKUP_DIR="/backup/www"
DATE="$(date +"%Y-%m-%d_%H-%M")"
ARCHIVE_NAME="www-backup-${DATE}.tar.gz"

mkdir -p "${BACKUP_DIR}"

tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" "${SRC_DIR}"

find "${BACKUP_DIR}" -type f -name "www-backup-*.tar.gz" -mtime +7 -delete


این اسکریپت:

• از SRC_DIR یه آرشیو .tar.gz می‌سازه
• توی BACKUP_DIR ذخیره‌اش می‌کنه
• Backupهای قدیمی‌تر از ۷ روز رو پاک می‌کنه تا دیسک پر نشه

یه نکته‌ی ریز: اگر مسیرها رو عوض می‌کنی، حواست باشه یوزری که اسکریپت رو اجرا می‌کنه، permission لازم برای خوندن SRC_DIR و نوشتن تو BACKUP_DIR رو داشته باشه.

حالا برای زمان‌بندی با cron (مثلاً هر روز ساعت ۳ صبح):

۱) اسکریپت رو مثلاً بذار تو /usr/local/bin/www-backup.sh و اجراپذیرش کن:
chmod +x /usr/local/bin/www-backup.sh


۲) crontab رو برای یوزر root باز کن:
crontab -e


۳) این خط رو اضافه کن:
0 3 * * * /usr/local/bin/www-backup.sh >/var/log/www-backup.log 2>&1


با این کار هر شب ساعت ۳ صبح، Backup گرفته می‌شه و خروجی هم توی لاگ ذخیره می‌شه تا بعداً اگر مشکلی شد، دیباگش راحت باشه.

برای شروع همین اسکریپت ساده فوق‌العاده کاربردیه؛ بعداً می‌تونی encrypt، انتقال روی remote (مثلاً با rsync+ssh) یا Notification هم بهش اضافه کنی.

امتحانش کن روی یه پوشه‌ی تستی و اگر مفید بود برای بقیه‌ی لینوکسی‌ها هم بفرست 🌱

🔖 #Linux #لینوکس #Linux #GNU #Bash #Backup #cron #Shell_Scripting #Sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
👍41
📌 مانیتور کردن پر شدن دیسک با یک اسکریپت سادهٔ Bash

خیلی وقت‌ها روی سرور یا حتی سیستم شخصی، ناگهان / پر می‌شود و سرویس‌ها شروع می‌کنند به خطا دادن. یک اسکریپت سبک Bash می‌تواند هر چند دقیقه یک‌بار وضعیت دیسک را چک کند و قبل از فاجعه، بهت خبر بدهد. 🤝

ایده این است:

• از df برای گرفتن درصد استفادهٔ دیسک استفاده می‌کنیم.
• اگر درصد از یک حد خاص (مثلاً ۸۰٪) بالاتر رفت، پیام هشدار در لاگ می‌نویسیم یا ایمیل می‌زنیم.
• اسکریپت را با cron زمان‌بندی می‌کنیم.

مستندات رسمی df و bash هم همیشه همراهت است:
GNU df manual
GNU Bash Reference Manual

👇 این یک نمونه اسکریپت مینیمال و عملی است که روی اکثر توزیع‌ها (Debian, Ubuntu, Fedora و ...) کار می‌کند:

#!/usr/bin/env bash

THRESHOLD=80
MOUNT_POINT="/"

usage=$(df -P "$MOUNT_POINT" | awk 'NR==2 {gsub("%","", $5); print $5}')

if [ "$usage" -ge "$THRESHOLD" ]; then
logger -t disk-monitor "Disk usage on $MOUNT_POINT is ${usage}% (threshold: ${THRESHOLD}%)"
fi


🧩 توضیح بخش‌های مهم:

df -P / خروجی portable می‌دهد (برای اسکریپت‌ها امن‌تر است).
• با awk سطر دوم و ستون پنج را می‌گیریم که همان درصد استفاده است؛ علامت ٪ را با gsub حذف می‌کنیم.
• اگر استفاده از حد THRESHOLD بیشتر شد، با logger یک پیام به syslog ارسال می‌کنیم. این پیام را بعداً با journalctl یا /var/log/syslog می‌شود دید.

برای اجرا کردن دوره‌ای، مثلاً هر ۵ دقیقه، یک cron job اضافه می‌شود:

crontab -e


و بعد یک خط مثل این داخلش قرار می‌دهی:

*/5 * * * * /usr/local/bin/disk-monitor.sh >/dev/null 2>&1


نکتهٔ مفید: روی سرورهای production معمولاً این اسکریپت را کمی گسترش می‌دهند؛ مثلاً اگر درصد زیاد شد، خروجی df و du -sh /var/* را هم ذخیره می‌کنند تا بعداً راحت‌تر root cause را پیدا کنند یا حتی با ابزارهایی مثل mailx ایمیل هشدار می‌فرستند.

این از آن اسکریپت‌های کوچک ولی نجات‌بخش است؛ روی یک سرور تست یا ماشین مجازی امتحانش کن و مطابق نیاز خودت شخصی‌سازی‌اش کن. 😎

🔖 #Linux #لینوکس #Linux #Bash #Shell #Sysadmin #Monitoring #Cron #GNU

👤 Developix

💎 Channel: @DevelopixLinux
🔥32
یکی از واقعی‌ترین کارهای روزمره روی سرورهای لینوکسی: بکاپ گرفتن منظم از فایل‌های مهم 📦

اینجا یک سناریوی ساده ولی کاملاً کاربردی:

فرض کن روی سرور، دایرکتوری /var/www داری (مثل سایت‌ها یا اپ‌های وب) و می‌خوای هر روز یک آرشیو فشرده ازش در /backup ذخیره شود، با تاریخ روی اسم فایل، بدون دخالت دست ⏱️

ایده کلی:

• یک اسکریپت Bash می‌نویسیم که:
– دایرکتوری مقصد بکاپ را اگر نبود بسازد
– از دایرکتوری سورس، یک فایل .tar.gz با تاریخ روز درست کند
– لاگ ساده بنویسد
• بعد با cron تنظیمش می‌کنیم که هر شب اجرا شود.

این کار کاملاً مطابق مستندات رسمی است:

GNU tar manual
GNU Bash manual
• راهنمای crontab(5) با اجرای man 5 crontab

نمونه اسکریپت ساده و عملی 👇

#!/usr/bin/env bash

set -euo pipefail

SOURCE_DIR="/var/www"
BACKUP_DIR="/backup"
DATE="$(date +"%Y-%m-%d_%H-%M")"
ARCHIVE_NAME="www-backup-${DATE}.tar.gz"
LOG_FILE="${BACKUP_DIR}/backup.log"

mkdir -p "${BACKUP_DIR}"

tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" "${SOURCE_DIR}" 2>&1 | \
tee -a "${LOG_FILE}"

echo "[${DATE}] Backup created: ${ARCHIVE_NAME}" >> "${LOG_FILE}"


نکات مهم 💡

• حتماً روی سرور به‌جای مسیرهای تستی، مسیر واقعی پروژه‌ات را بگذار.
• یوزری که اسکریپت را اجرا می‌کند باید دسترسی خواندن روی /var/www و نوشتن روی /backup داشته باشد.
• گزینه‌های set -euo pipefail کمک می‌کند اسکریپت اگر به خطا خورد، بی‌سروصدا ادامه ندهد؛ این عادت خیلی خوبی در اسکریپت‌نویسی است.

اتومات کردن با cron 🕒

بعد از ذخیره اسکریپت مثلاً در /usr/local/bin/auto-backup.sh و اجرای:

chmod +x /usr/local/bin/auto-backup.sh
crontab -e


داخل ویرایشگر cron این خط را اضافه کن تا هر روز ۳ بامداد بکاپ بگیرد:

0 3 * * * /usr/local/bin/auto-backup.sh >/dev/null 2>&1


برای تست، یک‌بار دستی اجرا کن تا مطمئن شوی همه چیز درست است و حجم فایل‌های بکاپ بی‌جهت بزرگ نمی‌شود. اگر حجم خیلی بالا بود، می‌شود الگوی حذف بکاپ‌های قدیمی (مثلاً قدیمی‌تر از ۷ روز) را هم به همین اسکریپت اضافه کرد.

چنین اسکریپت‌های کوچک واقعاً توی کار روزمره sysadmin بودن معجزه می‌کنند؛ همین امروز روی یک دایرکتوری تست اجرا کن و نتیجه را ببین 🚀

🔖 #Linux #لینوکس #Linux #Bash #Backup #cron #sysadmin #shell_scripting

👤 Developix

💎 Channel: @DevelopixLinux
👍81🔥1
🔹 خیلی وقت‌ها تو لینوکس دیسک پر می‌شود و باید سریع بفهمیم کدوم دایرکتوری‌ها بیشترین فضا را گرفته‌اند. یک ابزار ساده و پیش‌فرض که تقریبا روی همه دیستروها هست: du.

📦 نمایش حجم دایرکتوری‌ها به‌صورت خوانا (MB/GB):
du -h --max-depth=1 /var


🔹 توضیح سریع سوییچ‌ها:
- -h خروجی human-readable مثل 10M ،2.3G
- --max-depth=1 فقط یک لایه زیر دایرکتوری مشخص را نشان می‌دهد

مثلا برای بررسی هوم یوزر:
du -h --max-depth=1 ~ | sort -h


اینجا از sort -h استفاده شده تا خروجی بر اساس حجم، از کم به زیاد مرتب شود. انتهای خروجی، دایرکتوری‌های چاق و پردردسر مشخص می‌شوند و می‌شود راحت تصمیم گرفت کجا را تمیز کنیم.

💡 چند نکته کاربردی:
• برای نادیده گرفتن بعضی مسیرها:
du -h --max-depth=1 --exclude="*.git" ~

• برای جمع کل یک مسیر (بدون جزئیات):
du -sh /var/log


این ترکیب ساده du و sort تقریبا روی همه سرورها و دسکتاپ‌ها جواب می‌دهد و اولین قدم خوب برای عیب‌یابی پر شدن دیسک است.

📚 مرجع: man7.org - du(1)


🔖 #Linux #لینوکس #Linux #Terminal #du #DiskUsage #GNU

👤 Developix

💎 Channel: @DevelopixLinux
5
امروز که خواستم یوزرنیم رو توی دبیان عوض کنم، یه نکته مهم یاد گرفتم! مثال جالبش اینه که توی حرکت بخوای دنده ماشین عوض کنی بدون خلاص کردن و کلاچ گرفتن! معلومه که گیربکس خورد میشه:)🫨

چرا نباید وقتی با همون یوزر لاگین هستی اسمشو عوض کنی؟

فرض کن الان با یوزر abolfazl وارد سیستم شدی.
اگه همون موقع با دستور usermod اسمشو عوض کنی:

- یه‌دفعه پروسه‌های در حال اجرا قاطی می‌کنن
- دسکتاپ، پنجره‌ها یا کل سشن ممکنه بپره
- حتی ممکنه دسترسی به پوشه‌ی home به هم بریزه

خب، با root چی؟

حتی اگه بریم توی root هم مستقیم این کارو بکنیم، باز کار تمیز نیست.
چون هر چیزی که هنوز با اسم قدیمی یوزر کار می‌کنه، بعدش خطا می‌ده.



راه درست و حرفه‌ای چیه؟

بهترین کار اینه که یه یوزر دیگه داشته باشی (مثلاً backupuser) که:

- sudo داشته باشه
- باهاش لاگین کنی
- و از اون یوزر، اسم یوزر اصلی رو عوض کنی

مراحلش خیلی ساده‌ست:

1. اول با یوزر پشتیبان وارد شو:

su - backupuser

2. اگه خواستی، رمز یوزر قبلی رو عوض کن:

sudo passwd abolfazl

3. بعد اسم یوزر، گروه و پوشه home رو تغییر بده:

sudo usermod -l ali abolfazl
sudo groupmod -n ali abolfazl
sudo usermod -d /home/ali -m ali
sudo chown -R ali:ali /home/ali



با این روش چی می‌شه؟

- سیستم سالم می‌مونه؛ دسکتاپ و home نمی‌پره؛ میشه یه یوزر امن داری که از بیرون بتونی تغییرات سیستمی بدی

🔖 #Linux #لینوکس

👤 Abolfazl Asadi

💎 Channel: @DevelopixLinux
👍15
خیلی وقت‌ها تو ترمینال یه دستور طولانی می‌نویسیم، بعد می‌فهمیم فقط باید یه گزینه‌ٔ کوچیک عوض می‌شد. لازم نیست کل دستور رو دوباره تایپ کنی؛ تاریخچه‌ٔ Bash کلی میان‌بر خفن داره 👇

۱️⃣ اجرای آخرین دستور با sudo
یه دستور زدی، Permission denied خورد:
apt update
# Permission denied

به‌جای نوشتن کل دستور با sudo:
sudo !!

!! همون آخرین دستوریه که اجرا کردی. خیلی سریع و کاربردی 😎

۲️⃣ تکرار آخرین دستور شروع‌شده با چند حرف
مثلاً چند بار از systemctl استفاده می‌کنی:
!systemctl

این آخرین دستوری که با systemctl شروع شده رو دوباره اجرا می‌کنه.

۳️⃣ فقط آخرین آرگومان دستور قبلی
مثال ساده:
mkdir my_project
cd !$

!$ آخرین آرگومان دستور قبلیه (اینجا: my_project). برای کار با مسیرهای طولانی فوق‌العاده‌ست.

۴️⃣ ویرایش آخرین دستور با fc
اگه دستور قبلی طولانی بود و فقط یه بخشش رو می‌خوای عوض کنی:
fc

آخرین دستور رو تو ادیتور پیش‌فرض باز می‌کنه (مثلاً vim)، ادیت کن و سیو کن، خودش اجرا می‌شه.

این ترفندها تقریباً تو همه‌ٔ توزیع‌های گنو/لینوکس که از Bash استفاده می‌کنن کار می‌کنه و تو کار روزمره کلی زمان ذخیره می‌کنه ⏱️

برای جزییات بیشتر تاریخچه‌ٔ Bash:
GNU Bash Manual – History Interaction

🔖 #Linux #لینوکس #Linux #GNU #Bash #Terminal #Shell #Productivity

👤 Developix

💎 Channel: @DevelopixLinux
14👍3🔥3
🚀 سرور اختصاصی با تنوع منابع برای هر نوع نیاز 
پورت اختصاصی
آپلود رایگان
تخفیف پلکانی ترافیک
آپتایم 99.99%
24 ساعت تست رایگان
رائه IP مازاد 
پشتیبانی 24/7 
تحویل فوری 
ارائه سرویس Colocation 
بدون قطعی
پرداخت ماهیانه

تعداد محدود – برای استفاده از این تخفیف ویژه سریع اقدام کن!
برای اطلاعات بیشتر و سفارش، تماس بگیر:
🔺 02191555530
💻 خرید سرور اختصاصی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🧩 تا حالا یه بار اشتباهی یه پوشه مهم رو پاک کردی و بعدش فهمیدی بکاپ درست‌حسابی نداشتی؟ توی لینوکس خیلی راحت می‌شه با یه اسکریپت کوچیک Bash و یه cron job، بکاپ‌گیری منظم و خودکار راه انداخت؛ بدون نیاز به ابزارهای سنگین.

ایده اینه: یه اسکریپت بنویسیم که از یه پوشه (مثلاً /home/USER/projects) هر روز یه آرشیو فشرده بسازه و توی یه پوشه امن (مثلاً /backup) نگه‌داره، با تاریخ روی اسم فایل. این دقیقاً همون چیزیه که هزار تا بار تو سرورهای واقعی استفاده می‌شه.

برای جزئیات بیشتر می‌شه مستند رسمی Bash و دستور tar رو دید:
GNU Bash Manual
GNU tar Manual

👇 یه اسکریپت ساده و کاربردی:

#!/usr/bin/env bash

set -euo pipefail

SOURCE_DIR="$HOME/projects"
BACKUP_DIR="/backup"
DATE="$(date +"%Y-%m-%d_%H-%M")"
ARCHIVE_NAME="projects_backup_${DATE}.tar.gz"

mkdir -p "${BACKUP_DIR}"

tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" \
--exclude="*.log" \
--exclude="node_modules" \
-C "${SOURCE_DIR}" .

echo "Backup created at: ${BACKUP_DIR}/${ARCHIVE_NAME}"


چند نکته ریز ولی مهم:

🔹 set -euo pipefail کمک می‌کنه اسکریپت اگه جایی خطا شد نصفه‌نیمه ادامه نده.
🔹 --exclude ها باعث می‌شن چیزهای حجیم و بی‌مصرف (مثل node_modules) توی هر بکاپ تکرار نشن.
🔹 سوییچ -C توی tar می‌گه قبل از آرشیو کردن وارد اون دایرکتوری بشه؛ این‌طوری ساختار داخل آرشیو تمیزتره.

بعد از ذخیره اسکریپت مثلاً به نام backup_projects.sh و اجرایی کردنش:
chmod +x backup_projects.sh


می‌شه با cron کاری کرد هر شب اتوماتیک اجرا بشه:
crontab -e

و مثلاً این خط رو اضافه کرد:
0 2 * * * /home/USER/backup_projects.sh > /var/log/backup_projects.log 2>&1


این الگو بعداً خیلی راحت قابل گسترشه: می‌شه چند تا پوشه مختلف رو بکاپ گرفت، آرشیوها رو sync کرد روی یه سرور دیگه با rsync، یا حتی قبل از بکاپ گرفتن، تست‌های پروژه رو اجرا کرد.

امتحانش کن روی یه پوشه غیرحساس، لاگ رو ببین، و کم‌کم این اسکریپت رو تبدیل کن به بخشی از workflow روزمره‌ات 😊

🔖 #Linux #لینوکس #Linux #Bash #Backup #Shell #Cron #GNU

👤 Developix

💎 Channel: @DevelopixLinux
👍1
🌱 بعضی وقت‌ها فقط یک بار فراموش‌کردن Backup مساوی است با از دست دادن چند ماه کار. روی سرور یا حتی روی لپ‌تاپ خودت می‌شود با یک Bash Script خیلی ساده، Backup منظم و خودکار داشت.

اینجا ایده این است:

• یک دایرکتوری مهم (مثلاً /var/www یا پروژه‌های شخصی) را هر روز Backup بگیریم.
• فایل Backup را با نام دارای تاریخ ذخیره کنیم.
• با cron کاری کنیم اسکریپت خودش اجرا شود، بدون این‌که هر بار یادت باشد.

آموزش اصلی و مفصل‌ترش را می‌شود توی مستند رسمی GNU Bash و man pages دید:

• Bash Reference Manual: gnu.org/software/bash/manual/bash.html
• راهنمای crontab(5): روی سیستم خودت دستور man 5 crontab را بزن.

بیایید یک اسکریپت Backup خیلی قابل‌فهم بسازیم 👇

#!/usr/bin/env bash

SOURCE_DIR="/var/www"
BACKUP_DIR="/backup/www"
DATE="$(date +"%Y-%m-%d_%H-%M")"
BACKUP_FILE="${BACKUP_DIR}/www-backup-${DATE}.tar.gz"

mkdir -p "${BACKUP_DIR}"

tar -czf "${BACKUP_FILE}" "${SOURCE_DIR}" 2>"${BACKUP_DIR}/backup-error.log"

if [[ $? -eq 0 ]]; then
echo "[OK] Backup created: ${BACKUP_FILE}"
else
echo "[ERROR] Backup failed. Check log file." >&2
fi


این اسکریپت:

• با mkdir -p مطمئن می‌شود دایرکتوری Backup وجود دارد.
• با tar -czf یک فایل فشرده .tar.gz می‌سازد.
• خطاها را داخل backup-error.log می‌ریزد که بعداً راحت‌تر بشود دیباگ کرد.

نکته‌ی ریز ولی مهم: برای redirect کردن stderr از >&2 استفاده شده؛ این را Bash Manual دقیق توضیح داده و روی شل‌های سازگار با POSIX هم رفتار قابل پیش‌بینی دارد.

حالا کافی است اسکریپت را مثلاً توی /usr/local/sbin/backup-www.sh ذخیره کنی و اجرایی‌اش کنی:

sudo chmod +x /usr/local/sbin/backup-www.sh


بعد با crontab -e مثلاً این خط را اضافه کن تا هر روز ساعت ۳ صبح Backup بگیرد:

0 3 * * * /usr/local/sbin/backup-www.sh >> /var/log/backup-www.log 2>&1


لطفاً قبل از این‌که روی سرور اصلی اجرا کنی، یک بار روی یک دایرکتوری تست امتحانش کن و مطمئن شو فضای دیسک کافی داری. Backup بدون تست Restore فقط یک توهم امنیت است 🙂

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

🔖 #Linux #لینوکس #Linux #Bash #Backup #Cron #Shell #Sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
👍2
یه نیاز خیلی معمول: می‌خوای توی سرور یا سیستم خودت از یه دایرکتوری مهم (مثلاً پروژه‌هات یا تنظیمات) به‌طور منظم Backup بگیری، بدون این‌که هر بار یادت باشه دستی این کار رو بکنی.

اینجا از چیزهایی استفاده می‌کنیم که روی تقریباً همه‌ٔ توزیع‌های GNU/Linux هست: Bash، دستور tar و سرویس cron. همه‌چی ساده، قابل فهم و مستند توی man pages و مستندات رسمی.

🔹 ایده‌ٔ کار

یک اسکریپت Bash می‌نویسیم که:

- از یک دایرکتوری مشخص، آرشیو فشرده می‌سازه
- توی اسم فایل Backup تاریخ می‌ذاره
- Backupهای قدیمی‌تر از n روز رو پاک می‌کنه
- بعد هم با cron زمان‌بندیش می‌کنیم

این مدل اسکریپت رو راحت می‌شه بعداً برای پوشه‌های مختلف، یا حتی انتقال روی remote با ssh، گسترش داد.

📦 نمونه اسکریپت Backup

مثال زیر از /home/user/projects بکاپ می‌گیره و توی /backup/local ذخیره می‌کنه. مسیرها رو طبق سیستم خودت عوض کن.

#!/usr/bin/env bash

set -euo pipefail

SRC_DIR="/home/user/projects"
DEST_DIR="/backup/local"
RETENTION_DAYS=7

DATE="$(date +"%Y-%m-%d_%H-%M-%S")"
ARCHIVE_NAME="projects-${DATE}.tar.gz"

mkdir -p "${DEST_DIR}"

# ساخت آرشیو فشرده
tar -czf "${DEST_DIR}/${ARCHIVE_NAME}" -C "${SRC_DIR}" .

# پاک‌کردن بکاپ‌های قدیمی
find "${DEST_DIR}" -type f -name "projects-*.tar.gz" -mtime +"${RETENTION_DAYS}" -delete


چند نکتهٔ مهم:

- از set -euo pipefail استفاده شده تا اسکریپت روی خطا متوقف بشه؛ این توی اسکریپت‌های سیستمی خیلی کمک می‌کنه.
- توی دستور tar از -C استفاده شده تا ساختار داخل آرشیو تمیز و بدون مسیرهای عجیب باشه.
- دستور find با -mtime بر اساس سن فایل‌ها (به روز) پاک‌سازی می‌کنه.
مستندات همهٔ این‌ها توی man pages هست:

man tar
man find
man 5 crontab


زمان‌بندی با cron

بعد از ذخیرهٔ اسکریپت مثلاً توی
/usr/local/bin/backup-projects.sh
و قابل‌اجرا کردنش:

chmod +x /usr/local/bin/backup-projects.sh


ورود به ویرایشگر cron کاربر:

crontab -e


و اضافه‌کردن یک خط برای اجرای Backup هر روز ساعت ۳ صبح:

0 3 * * * /usr/local/bin/backup-projects.sh >> /var/log/backup-projects.log 2>&1


اینجوری هم اسکریپت هر شب خودکار اجرا می‌شه، هم لاگش رو داری برای وقتی چیزی خراب شد.

این مدل Backup ساده برای خیلی سناریوهای روزمره (سرور خانگی، VPS کوچک، لپ‌تاپ کاری) کاملاً جواب می‌ده و بعداً می‌شه با ابزارهایی مثل rsync یا ssh راحت‌ترش کرد.

امتحانش روی یک دایرکتوری تست کم‌حجم، و نگاه‌کردن به خروجی tar و لاگ cron، بهترین راهه که قبل از استفادهٔ جدی مطمئن بشی همه‌چی طبق انتظار کار می‌کنه. 😉

🔖 #Linux #لینوکس #Linux #Bash #Backup #cron #Shell #Sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
👍41
🚀 سرور اختصاصی با تنوع منابع برای هر نوع نیاز 
پورت اختصاصی
آپلود رایگان
تخفیف پلکانی ترافیک
آپتایم 99.99%
24 ساعت تست رایگان
ارائه IP مازاد 
پشتیبانی 24/7 
تحویل فوری 
ارائه سرویس Colocation 
بدون قطعی
پرداخت ماهیانه

تعداد محدود – برای استفاده از این تخفیف ویژه سریع اقدام کن!
برای اطلاعات بیشتر و سفارش، تماس بگیر:
🔺 02191555530
💻 خرید سرور اختصاصی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
خیلی وقت‌ها روی سرور یا سیستم شخصی، چند تا فولدر مهم داریم (مثلاً ~/projects یا تنظیمات dotfiles) و همیشه می‌گیم «بعداً براش Backup می‌گیرم» و بعد… دیر می‌شه 🙂

امروز یه سناریوی کاملاً واقعی رو می‌گیریم: ساختن یک Backup روزانه از یه دایرکتوری مهم روی GNU/Linux با استفاده از Bash و ابزارهای استاندارد مثل tar و cron.
این دقیقاً همون چیزیه که توی GNU tar manual و راهنمای crontab(5) توضیح داده شده، فقط اینجا جمع‌وجور و عملی‌ترش می‌کنیم 😎

ایدهٔ اصلی چیه؟

۱️⃣ با tar از یک دایرکتوری، آرشیو فشرده می‌گیریم.

۲️⃣ اسم فایل Backup رو طوری می‌ذاریم که تاریخ توش باشه (برای نسخه‌های مختلف).

۳️⃣ با cron کاری می‌کنیم هر روز خودش اجرا بشه، بدون دخالت دست.

یک اسکریپت Bash ساده:

#!/usr/bin/env bash

SOURCE_DIR="$HOME/projects"
BACKUP_DIR="$HOME/backups"
DATE=$(date +"%Y-%m-%d_%H-%M")

mkdir -p "$BACKUP_DIR"

ARCHIVE_NAME="projects_backup_${DATE}.tar.gz"

# ایجاد آرشیو فشرده با tar
/usr/bin/tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" -C "$HOME" projects

# حذف Backupهای قدیمی‌تر از ۳۰ روز
/usr/bin/find "$BACKUP_DIR" -type f -name 'projects_backup_*.tar.gz' -mtime +30 -delete


این اسکریپت:

• فولدر ‎$HOME/projects‎ رو توی ‎$HOME/backups‎ به صورت .tar.gz ذخیره می‌کنه.

• توی اسم فایل تاریخ و ساعت می‌ذاره تا نسخه‌ها قاطی نشن.

• Backupهای قدیمی‌تر از ۳۰ روز رو حذف می‌کنه که هارد پر نشه.

مسیرهای مطلق برای /usr/bin/tar و /usr/bin/find از توصیه‌های مرسوم sysadminهاست، مخصوصاً وقتی اسکریپت قراره از داخل cron اجرا بشه؛ چون PATH همیشه مثل محیط interactive نیست.

خودکار کردن با cron

طبق man crontab، می‌تونیم این اسکریپت رو هر روز ساعت ۳ صبح اجرا کنیم. بعد از این‌که اسکریپت رو مثلاً به اسم backup-projects.sh ذخیره و executable کردیم:

chmod +x $HOME/bin/backup-projects.sh
crontab -e


و این خط رو به crontab اضافه می‌کنیم:

0 3 * * * /home/USERNAME/bin/backup-projects.sh > /home/USERNAME/backup.log 2>&1


فقط USERNAME رو با یوزر خودت عوض کن. خروجی هم توی backup.log ذخیره می‌شه که اگر مشکلی پیش اومد، راحت لاگ رو چک کنی.

یه نکتهٔ مهم: حتماً یک بار دستی اسکریپت رو اجرا کن و آرشیو رو باز کن تا مطمئن بشی دقیقاً همون چیزی رو که می‌خوای Backup می‌گیری.

این مدل Backup ساده، برای لپ‌تاپ شخصی، سرور توسعه، یا حتی Raspberry Pi عالی جواب می‌ده. نه ابزار پیچیده لازم داره، نه تنظیمات عجیب و غریب.

امتحانش کن، کمی برای نیاز خودت شخصی‌سازیش کن، و اگر به‌دردت خورد برای بقیهٔ لینوکسی‌ها هم بفرست 🌱

🔖 #Linux #لینوکس #GNU/Linux #Bash #Backup #cron #tar #Shell_Scripting #Sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
5🔥1
Forwarded from ابر ویراک
ویراک کلود | تجربه‌ی ابری بدون محدودیت ☁️🚀

🎁 ۲۰٪ شارژ هدیه روی اولین واریزی

مزیت‌هایی که واقعاً فرق می‌سازن:
⚡️ پهنای باند 980 مگ
🌐با IP مازاد
⏱️ راه‌اندازی فوری
💳 پرداخت ساعتی
🛡 پشتیبانی ۲۴/۷

💬 هر سوالی داشتی، تیم ما کنارتـه
مناسب استارتاپ‌ها، تیم‌های فنی، تا سازمان‌های بزرگ

همین الان شروع کن و با حداکثر منابع، سریع‌تر رشد کن 👇🏻

📞 تماس سریع: 02191555530
🔗 https://virakcloud.com
2
بکاپ داشتن تا وقتی لازم نشه به چشم نمیاد 😅 ولی یه بار دیسک مشکل پیدا کنه، تازه می‌فهمیم rsync و cron چه نعمتین.

امروز یه سناریوی کاملاً عملی رو می‌بینیم: تنظیم بکاپ خودکار از پوشه‌ی /home روی یه دیسک خارجی، فقط با ابزارهای استاندارد لینوکس (بدون هیچ نرم‌افزار فانتزی اضافی).

منبع ایده و رفرنس:
Arch Wiki - Rsync
GNU Cron

💡 ایده‌ی کلی
یه اسکریپت Bash کوچیک می‌نویسیم که با rsync فقط تغییرات رو کپی کنه (incremental backup) و با cron تنظیمش می‌کنیم هر شب خودش اجرا بشه.

🔧 نصب و تست سریع rsync
روی اکثر distroها پیش‌فرض نصبه. اگه نبود:

Debian/Ubuntu:
sudo apt install rsync


Fedora:
sudo dnf install rsync


یه تست ساده:
rsync -avh /etc/ /tmp/etc-backup-test


📝 اسکریپت بکاپ خودکار
فرض کنیم دیسک خارجی‌مون روی /mnt/backup مونت شده و می‌خوایم از /home بکاپ بگیریم.

#!/usr/bin/env bash

SOURCE="/home/"
DEST="/mnt/backup/home-backup/"
LOGFILE="/var/log/home-backup.log"

# اگه مقصد نبود بساز
mkdir -p "$DEST"

# اجرای rsync با چند گزینه‌ی مهم
rsync -avh \
--delete \
--exclude=".cache/" \
"$SOURCE" "$DEST" >> "$LOGFILE" 2>&1


چند نکته‌ی مهم:

-a : پرمیژن‌ها، owner، زمان‌ها و… رو حفظ می‌کنه (archive mode).
-v و -h : خروجی خوانا و دوست‌داشتنی‌تر.
--delete : فایل‌هایی که از /home حذف شدن، از بکاپ هم حذف می‌کنه؛ بکاپ رو sync نگه می‌داره. اگه می‌ترسه چیزی پاک شه، اول بدون این گزینه تست کن.
--exclude=".cache/" : کش‌های بی‌مصرف رو نبره توی بکاپ.

اسکریپت رو مثلاً ذخیره کن توی:
/usr/local/bin/home-backup.sh

و اجرایی‌اش کن:
sudo chmod +x /usr/local/bin/home-backup.sh


یه بار دستی اجراش کن که مطمئن شی درست کار می‌کنه:
sudo /usr/local/bin/home-backup.sh


زمان‌بندی با cron
برای root (چون معمولاً نیاز به دسترسی به همه‌ی homeها داریم):
sudo crontab -e

و این خط رو اضافه کن تا هر روز ۳ صبح اجرا شه:
0 3 * * * /usr/local/bin/home-backup.sh


توضیح سریع فرمت:
دقیقه ساعت روزِماه ماه روزِهفته

⚠️ چند تله‌ی معمول
• حتماً مطمئن شو دیسک روی /mnt/backup مونت شده؛ وگرنه ممکنه rsync توی خود دیسک root پوشه بسازه 😐
• قبل از اضافه‌کردن --delete همیشه یه بار بدون اون و با --dry-run تست کن:
rsync -avh --dry-run SOURCE DEST


نتیجه
با چند خط اسکریپت و یه cron job ساده، هر شب یه بکاپ مرتب از home داری که فقط تغییرات رو sync می‌کنه و هم سریع‌تره هم کم‌حجم‌تر.

امتحانش کن روی یه پوشه‌ی تست، لاگ رو ببین، بعد کم‌کم روی دیتای اصلی‌ات پیاده کن و تجربه‌ات رو با بقیه به اشتراک بذار 🌱

🔖 #Linux #لینوکس #Linux #Backup #rsync #cron #Bash #Sysadmin #Automation #GNU/Linux

👤 Developix

💎 Channel: @DevelopixLinux
8👍1
🧠 مدیریت حرفه‌ای تاریخچه دستورات با fc در Bash

گاهی یک دستور طولانی را اشتباه می‌زنی و فقط می‌خواهی همان را سریع اصلاح و دوباره اجرا کنی. به‌جای پیمایش با کلید ↑ تا مرگ 😄، از builtin قوی Bash یعنی fc استفاده کن.

ایده: fc یک یا چند دستور آخر را در editor دلخواهت باز می‌کند، اصلاح می‌کنی و بعد خودش اجرا می‌کند.

مثال ساده:
echo "sume data" > file.txt
# اوه، تایپو! باید "some" باشد
fc

این دستور، آخرین کامند را در editor پیش‌فرض (مثلاً vim یا nano) باز می‌کند، درست می‌کنی، ذخیره می‌کنی و بعد Bash نسخه اصلاح‌شده را اجرا می‌کند. 🚀

📌 چند کاربرد مفید:
# ویرایش ۳ دستور آخر
fc -3

# فقط نمایش بدون اجرا (برای چک کردن)
fc -nl -3


🔧 نکته: با تنظیم متغیر محیطی EDITOR می‌توانی editor موردعلاقه‌ات را انتخاب کنی:
export EDITOR=nano


برای جزئیات بیشتر:
مستندات رسمی Bash - بخش Builtins

امتحانش روی workflow روزمره خیلی حس سرعت و تمیزی بیشتری می‌دهد 🙂

🔖 #Linux #لینوکس #Linux #Bash #Shell #History #fc #CLI

👤 Developix

💎 Channel: @DevelopixLinux
👍4
🎯 سریع‌ترین راه پیدا کردن پوشه‌های سنگین با du + sort

وقتی دیسک نزدیک پر شدن است، گشتن دستی دنبال پوشه‌های چاق و چله واقعاً وقت‌گیر می‌شود. یک ترکیب ساده‌ی du و sort خیلی سریع نشان می‌دهد فضا دقیقاً کجا خورده شده است. 💽

این یک الگوی ساده و قابل‌حفظ است که روی اکثر توزیع‌ها کار می‌کند:

du -h --max-depth=1 /path | sort -h


🔍 توضیح کوتاه:
- du -h حجم‌ها را human-readable مثل 10M، 2G نشان می‌دهد.
- --max-depth=1 فقط زیرپوشه‌های سطح اول را لیست می‌کند (خروجی شلوغ نمی‌شود).
- sort -h بر اساس حجم (با K/M/G) مرتب می‌کند.

مثلاً برای بررسی /home:
du -h --max-depth=1 /home | sort -h


📌 نکات:
- روی مسیرهای سیستمی حساس بهتر است با sudo اجرا شود تا همه چیز را ببیند.
- اگر خروجی خیلی زیاد بود، می‌توان فقط ۲۰ مورد آخر را دید:
du -h --max-depth=1 / | sort -h | tail -n 20


👣 دفعه بعد که دیسک پر شد، قبل از panic همین الگو را اجرا کن و دقیقاً همان پوشه‌ی مشکل‌ساز را هدف بگیر.

📖 مرجع: man7.org/linux/man-pages/man1/du.1.html

🔖 #Linux #لینوکس #Linux #terminal #du #disk_usage #shell

👤 Developix

💎 Channel: @DevelopixLinux
👍2👎1
خیلی وقت‌ها یه سرویس روی سیستم بالا نمیاد یا کند می‌شه، و اولین جایی که باید سر بزنی لاگ‌هاست. روی سیستم‌های مدرن که از systemd استفاده می‌کنن، ابزار اصلی دیدن لاگ‌ها همون journalctl هست.

اینجا یه مرور سریع و کاربردی روی journalctl داریم؛ هم برای دیباگ، هم برای مانیتور سبک‌وزن لاگ‌ها.

منبع اصلی داک:
freedesktop.org/software/systemd/man/journalctl.html

🧩 ایده کلی
systemd-journald لاگ‌های کرنل، serviceها و حتی بعضی برنامه‌ها رو جمع می‌کنه و journalctl راه خواندن و فیلتر کردن این لاگ‌هاست. مزیتش اینه که همه‌چی یه‌جا جمعه و می‌تونی بر اساس unit، زمان، سطح لاگ و ... فیلتر بزنی.

🔍 دیدن لاگ یک سرویس مشخص
فرض کن سرویس nginx.service قاطی کرده. به‌جای گشتن تو چند تا فایل لاگ، مستقیم این رو بزن:

sudo journalctl -u nginx.service -e


سوییچ -u یعنی فیلتر روی همون systemd unit و -e می‌بردت آخر لاگ، شبیه tail.

📡 مانیتور لحظه‌ای لاگ (مثل tail -f)
وقتی می‌خوای یه کانفیگ جدید رو تست کنی، این خیلی می‌چسبه:

sudo journalctl -u nginx.service -f


-f یعنی هر چیزی جدیدی که لاگ شد رو زنده نشون بده. عالی برای وقتی که nginx -t می‌زنی یا داری reload می‌کنی.

⏱️ فیلتر زمانی لاگ‌ها
برای وقتی که می‌دونی مشکل از چه ساعتی شروع شده. مثلاً لاگ‌های امروز از ساعت 10 صبح:

sudo journalctl -u nginx.service --since "today 10:00"


یا مثلاً لاگ‌های ۲۴ ساعت اخیر کل سیستم:

sudo journalctl --since "-24 hours"


⚙️ یک نمونه ورک‌فلو واقعی دیباگ
سناریو: nginx بعد از تغییر کانفیگ بالا نمیاد.

1️⃣ وضعیت سرویس:
systemctl status nginx.service


2️⃣ دیدن لاگ‌های آخر برای خطا:
sudo journalctl -u nginx.service -e -n 50

-n 50 فقط ۵۰ خط آخر رو میاره که هم سریع‌تره هم خواناتر.

3️⃣ اگر Error مربوط به syntax بود، چک کانفیگ:
sudo nginx -t


معمولاً ترکیب systemctl status + journalctl همون چیزیه که واقعاً تو کار روزمره استفاده می‌شه.

🧹 مراقبت از حجم لاگ‌ها
روی بعضی سیستم‌ها، journal می‌تونه فضا ببلعه اگر تنظیمش نکرده باشی. یه نگاه سریع به وضعیت:

sudo journalctl --disk-usage


و اگر لازم شد تمیزکاری کنترل‌شده:

sudo journalctl --vacuum-time=7d


این دستور لاگ‌های قدیمی‌تر از ۷ روز رو پاک می‌کنه. حتماً قبلش --disk-usage رو ببین.

🌱 اگر تا حالا بیشتر با /var/log سر و کار داشتی، یه کم با journalctl بازی کن؛ چند تا سرویس روی سیستم خودت رو باهاش دیباگ کن. بعد از یکی‌دو بار استفاده، عملاً می‌شه ابزار روزمره‌ات برای فهمیدن "دقیقاً چی شد که خراب شد؟" 😉

🔖 #Linux #لینوکس #Linux #GNU/Linux #systemd #journalctl #logging #bash #sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
3👍3
اسکریپت‌نویسی Bash یکی از مفیدترین مهارت‌ها برای هر کاربر گنو/لینوکس است. با چند خط کد می‌شود کارهایی مثل بکاپ، تمیز کردن لاگ‌ها، یا همگام‌سازی پوشه‌ها را کاملاً خودکار کرد. این پست یک مثال واقعی و قابل‌استفاده از یک اسکریپت بکاپ خانگی می‌دهد که می‌شود روی هر distro اجراش کرد. 🙂

ایده ساده است: چند پوشه مهم (مثلاً ‎~/Documents و ‎~/Projects) را با `tar` فشرده کنیم، اسم فایل را بر اساس تاریخ بگذاریم، و در یک مسیر امن ذخیره کنیم. بعداً می‌توان این اسکریپت را در `cron` یا `systemd timer` گذاشت تا خودکار اجرا شود.

این مثال با الهام از مستندات رسمی Bash و man pageهای `tar(1)` و `date(1)` نوشته شده (روی هر سیستم می‌شود با `man tar` و `help test` جزئیات بیشتر را دید).

اسکریپت نمونه:
#!/usr/bin/env bash

set -euo pipefail

SOURCE_DIRS=("$HOME/Documents" "$HOME/Projects")
BACKUP_DIR="$HOME/backups"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="$BACKUP_DIR/home-backup-$DATE.tar.gz"

mkdir -p "$BACKUP_DIR"

for dir in "${SOURCE_DIRS[@]}"; do
if [[ ! -d "$dir" ]]; then
echo "هشدار: پوشه $dir پیدا نشد، رد می‌شود." >&2
fi
done

# ایجاد آرشیو فشرده
tar -czpf "$BACKUP_FILE" \
--exclude="$HOME/.cache" \
"${SOURCE_DIRS[@]}"

echo "بکاپ ساخته شد: $BACKUP_FILE"


چند نکته مهم از دل این اسکریپت:

• ‎`set -euo pipefail` کمک می‌کند اسکریپت در صورت خطا فوراً متوقف شود و از باگ‌های عجیب جلوگیری می‌کند.

• از آرایه Bash برای لیست پوشه‌ها استفاده شده؛ اضافه کردن مسیر جدید فقط با ویرایش `SOURCE_DIRS` انجام می‌شود.

• با `--exclude` جلوی بکاپ شدن چیزهای بی‌مصرف (مثل ‎~/.cache) گرفته می‌شود؛ این کار فضا و زمان را به‌طرز محسوسی کم می‌کند.

برای استفاده عملی، فایل را مثلاً با نام `backup-home.sh` در ‎`~/bin` ذخیره و executable کنید:
chmod +x ~/bin/backup-home.sh


بعد می‌شود با اضافه کردن یک entry ساده در `crontab`، این بکاپ را مثلاً هر شب اجرا کرد (‎`crontab -e` را ببینید، طبق مستندات `man 5 crontab`).

این اسکریپت پایه خوبی است برای ساختن یک سیستم بکاپ جدی‌تر: می‌شود log اضافه کرد، روی remote server با `ssh` کپی کرد، یا rotation برای پاک کردن بکاپ‌های خیلی قدیمی گذاشت.

یک بار روی یک پوشه کوچک تست، بعد کم‌کم روی داده‌های مهم پیاده‌سازی شود و نسخه‌های مختلف امتحان شود. اگر به‌دردتان خورد، اسکریپت خودتان را با بقیه لینوکسی‌ها به اشتراک بگذارید. 🚀

🔖 #Linux #لینوکس #Linux #Bash #Shell #Backup #GNU/Linux #tar #cron

👤 Developix

💎 Channel: @DevelopixLinux
👍5
اگه همیشه چند تا ترمینال باز داری، بین ssh سرورها جابه‌جا می‌شی و هی پنجره‌ها گم می‌شن، tmux دقیقا همون چیزیه که زندگیت رو روی ترمینال راحت‌تر می‌کنه 😄

اینجا یه معرفی عملی و سریع از tmux بر اساس راهنمای رسمی:
https://github.com/tmux/tmux/wiki

🧱 tmux دقیقا چیه؟

tmux یه terminal multiplexerـه؛ یعنی توی یه ترمینال می‌تونی چند تا "پنجره" و "پن" (split) داشته باشی، سشن‌هات رو نگه داری، از ssh قطع بشی ولی پروسه‌هات زنده بمونن.

مثلا یه سشن برای لاگ‌ها، یکی برای ویرایش config و یکی برای اجرای scriptها؛ همه زیر یه اتصال ssh که اگه قطع هم بشه، چیزی نمی‌پره 👌

🛠 نصب سریع روی توزیع‌های مختلف

روی Debian/Ubuntu:
sudo apt update && sudo apt install tmux


روی Fedora:
sudo dnf install tmux


روی Arch:
sudo pacman -S tmux


بعد از نصب، فقط بزن:
tmux

و وارد اولین سشن خودت می‌شی.

📌 شروع کار: پنجره و پن‌ (split)

کلید اصلی tmux اینه:

Ctrl+b = prefix

یعنی هر کاری می‌خوای بکنی، اول Ctrl+b، بعد دکمه‌ی مورد نظر.

چندتا چیز کاربردی روزمره:

• ساخت پن جدید افقی:
Ctrl+b بعد "

• ساخت پن عمودی:
Ctrl+b بعد %

• جابه‌جایی بین پن‌ها با جهت‌ها:
Ctrl+b + کلیدهای جهت (← ↑ → ↓)

• ساخت پنجره (window) جدید:
Ctrl+b بعد c

• جابه‌جایی بین پنجره‌ها:
Ctrl+b بعد n (بعدی) یا p (قبلی)

یه مثال واقعی: مانیتور لاگ + ویرایش کانفیگ

سناریو کلاسیک sysadmin:

۱) با ssh وصل شو به سرور.
۲) tmux رو اجرا کن:
tmux

۳) پن رو عمودی split کن (بالا لاگ، پایین ویرایش):

بالا:
journalctl -u nginx -f


پایین: فایل کانفیگ nginx رو ویرایش کن:
sudo vim /etc/nginx/nginx.conf


همزمان لاگ‌ها رو live می‌بینی و config رو تغییر می‌دی، بدون نیاز به چند تا ترمینال جدا.

🔁 جدا شدن و دوباره وصل شدن به سشن

قلب ماجرا این‌جاست. وسط کار اگه نت قطع بشه یا ssh ببنده، tmux سشن‌ت زنده می‌مونه.

• جدا شدن (detach):

Ctrl+b بعد d

حالا می‌تونی ssh رو ببندی، بعدا که برگشتی:
tmux attach

همون جایی میای که کار رو رها کرده بودی، لاگ، vim، هرچی.

🧩 یه config ساده و مفید

اگه دوست داری کلید prefix رو مثل screen یا راحت‌تر کنی، مثلا Ctrl+a، یه فایل ~/.tmux.conf بساز:

set -g prefix C-a
unbind C-b
bind C-a send-prefix


بعد tmux رو از داخلش با این دستور reload کن:

tmux source-file ~/.tmux.conf


از اینجا به بعد، prefix می‌شه Ctrl+a.

چند نکته ریز ولی مهم

• اگه چند تا سشن داری، لیستشون:
tmux ls


• attach به یه سشن مشخص:
tmux attach -t mysession


• ساخت سشن با اسم مشخص، مخصوصا برای هر پروژه:
tmux new -s myproject


🌱 جمع‌بندی

اگه زیاد با ssh، لاگ‌ها، build طولانی یا کارهای شبانه‌روزی روی سرور سروکله می‌زنی، tmux یکی از اون ابزارهایی‌ه که بعد از یه مدت بدونش واقعا سخته کار کردن.

یه سشن ساده بساز، دو سه تا split试 کن و کم‌کم بذار عضوی از workflow روزمره‌ات بشه. بعدا هر ترفند جدیدی یاد گرفتی، به بقیه هم منتقل کن 🙌

🔖 #Linux #لینوکس #Linux #tmux #Terminal #Shell #Sysadmin #GNU/Linux

👤 Developix

💎 Channel: @DevelopixLinux
🔥5
💠 نسخه جدید کرنل لینوکس (Linux) منتشر شده است

🔸 ارتقا از نسخه 7.0.12 به 7.1.0

🔹 لیست تغییرات این نسخه:
- اصلاح باگ‌های مهم KVM روی معماری arm64
- بهبود سازگاری و انطباق کنترلرهای USB SuperSpeed
- رفع مشکل دستگاه‌های شبح USB روی پورت‌های دوحالته Tegra
- پایداری بهتر لینک QSGMII در PHYهای LAN8814
- افزایش ایمنی دسترسی‌های PMBus/GPIO در درایور ADM1266
- بهبودهای ریز متعدد درایورها و زیرسیستم‌ها و غیره

🔖 #linux, #linux, #release

💎 @DevelopixLinux
6🔥2👍1
Forwarded from Developix Support
This media is not supported in your browser
VIEW IN TELEGRAM
🏆آفرهای جام جهانی ۲۰۲۶ هاست‌ایران فعال شد!

با کمپین «ترکیب برنده سایتت»، زیرساخت سایتت رو برای روزهای پرترافیک آماده کن:

🔥 ۲۵٪ تخفیف روی پلن‌های ۳ ماهه هاست اشتراکی ایران
۵۰٪ تخفیف روی پلن‌های یک‌ماهه سرویس ابری در دیتاسنترهای تهران، مشهد و اهواز

🧠 مشاوره رایگان زیرساخت توسط کارشناسان هاست‌ایران
فرصت استفاده از تخفیف‌ها و ثبت فرم مشاوره محدود است.

📌 برای کپی کدهای تخفیف و ثبت‌نام در فرم مشاوره، روی لینک زیر کلیک کنید:

📌صفحه فرم مشاوره
📌تلگرام هاست‌ایران
📌بله هاست‌ایران


#هاست_ایران #سرور_ابری_هاست_ایران #هاست_اشتراکی #دیتاسنتر #مشاوره_زیرساخت #جام_جهانی2026
1