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

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

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
🔄 توزیع Asahi Linux یکی از متفاوت‌ترین توزیع های گنو/لینوکسی به لحاظ ساختار و معماری است

این توزیع مبتنی بر معماری Arm64 هست و برای اجرا شدن روی چیپ های سری M اپل توسعه داده شده است

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

اگر لپتاپ های مک‌بوک یا کامپیوتر های مک سری M از اپل دارید، Asahi Linux می‌تواند تجربه جالبی از یک توزیع گنو/لینوکسی روی سخت‌افزار اپل را برای شما رقم بزند

▫️البته باید توجه داشت که معماری این توزیع بر بستر Arm64 است و تعداد قابل توجهی از برنامه‌ها سازگار با این معماری نیستند

🌎 Website

💎 Channel: @DevelopixLinux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38👎74
🌀 هایپرلند (Hyperland) یک مدیرپنجره Tiling مدرن بر پایه Wayland و wlroots است که تجربه انیمیشن‌های نرم و روان و محیط فانتزی را به WM های Tiling در سیستم‌های گنو/لینوکسی می‌آورد.

💧 اگر کاربر گنو/لینوکس باشید، تقریبا بعید است که اسم مدیرپنجره‌های Tiling و محبوب‌ترین آن‌ها یعنی i3wm را نشنیده باشید، مدیرپنجره Hyperland نیز از ساختار مشابه i3wm استفاده می‌کند و تمامی قابلیت های i3wm را به‌صورت کامل در Wayland و بر پایه wlroots ممکن می‌کند.

💎 Channel: @DevelopixLinux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥5👎42
Forwarded from Developix Support
استخدام NOC Cloud Engineer از مسیر آموزش
در بوت‌کمپ تخصصی Network Operations Center-Tier 1

۸۰ ساعت | آنلاین

🔸آموزش در این بوت‌کمپ زیر نظر متخصصان با سابقه حوزه شبکه و دیتاسنتر انجام می‌شود و هدف آن استخدام در موقعیت شغلی کارشناس مرکز عملیات شبکه از میان نفرات برتر بوت‌کمپ است.

📌برخی از سرفصل‌های دوره:
- نصب و مدیریت لینوکس (بر اساس LPIC1 سفارشی)
- اصول شبکه (+Network / CCNA)
- امنیت پایه (+Security)
- مانیتورینگ سرویس‌ها و کار با ابزارهای حرفه‌ای
- مدیریت Incident و تیکتینگ


این دوره مناسب چی کسانی است⁉️
-علاقه‌مندان به شبکه، IT و امنیت؛
-فارغ‌التحصیلان یا دانشجویان رشته‌های کامپیوتر و برق؛
-کسانی که می‌خواهند خیلی سریع وارد بازار کار فناوری اطلاعات شوند؛
-افرادی که به دنبال اولین تجربه شغلی در حوزه NOC و شبکه هستند.


📆 تاریخ شروع بوت‌کمپ: ۳ آبان۱۴۰۴
🔰 بدون پیش‌نیاز؛ همراه با پروژه عملی و کوئیز
🧾مدرک پایان دوره


🔗 اطلاعات بیشتر و پیش‌ثبت‌نام👇
https://B2n.ir/mq4649
___
فناپ‌کمپس؛ رشد در بازار کار دیجیتال
@Fanapcampus
3
پشتیبان‌گیری خودکار با rsync + systemd ⏱️💾

یک مشکل واقعی: سایت یا سرور کمبود فضا نداره، ولی همیشه لازمه یک بکاپ سالم و قابل بازیابی داشته باشیم. این آموزش کوتاه نشون می‌ده چطور با rsync و یک systemd timer بکاپ‌های افزایشی و قابل اتکا بسازیم—بدون cron پیچیده.

ایده‌های کلیدی:
- rsync برای کپی افزایشی و حفظ مجوزها و لینک‌ها عالیه (man: rsync)
- systemd.timer جایگزین مدرن و قابل اطمینان برای زمان‌بندی است (مستندات: systemd.timer) ⏱️
- استفاده از --link-dest برای بکاپ‌های فضای‌دوست و قابل بازگشت.

نمونه عملی: اسکریپت بکاپ و واحد systemd. این مثال از /var/www به /backup بکاپ می‌گیرد و آخرین نسخه را با لینک حفظ می‌کند.

#!/bin/bash
set -euo pipefail
SRC="/var/www/"
DEST="/backup/$(hostname)-$(date +%F)"
RSYNC_OPTS="-aAXv --delete --link-dest=/backup/latest --exclude=/cache"
mkdir -p "$DEST"
rsync $RSYNC_OPTS "$SRC" "$DEST/"
rm -f /backup/latest && ln -s "$DEST" /backup/latest


و فایل‌های systemd:

# /etc/systemd/system/backup.service
[Unit]
Description=Daily rsync backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-rsync.sh

# /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup timer

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target


نکات عملی:
- قبل از فعال‌سازی با rsync --dry-run تست کنید.
- مطمئن شید مجوزها و مالک فایل‌ها در مقصد درست هستند (خصوصاً SELinux یا ACL).
- برای جزئیات بیشتر به مستندات Bash و systemd مراجعه کنید: Bash و Debian Timers guide.
- اشتباه رایج: استفاده از --delete بدون بررسی قبلی می‌تونه داده حذف‌شده را از بین ببره — همیشه تست کنید.

این روش ساده، قابل اتکا و قابل تنظیم برای سرورها و VPS‌هاست. امتحانش کن و اگه مفید بود، به بقیه هم معرفی کن 😉

🔖 #Linux #لینوکس #rsync #systemd #backup #linux #bash

👤 Developix

💎 Channel: @DevelopixLinux
👍72
📦 پیش‌رفت کلی کپی با rsync و کاهش اولویت با nice

یک مشکل رایج: هنگام همگام‌سازی یا بکاپ‌گیری از فایل‌های بزرگ، نمایش پیش‌رفت کلی نداریم و فرآیند روی سیستم تولید بار می‌کند. این ترفند ساده هم پیش‌رفت کلی را نشان می‌دهد و هم با کاهش اولویت CPU بار را کمتر می‌کند. ⚙️

ایده: از rsync با گزینه --info=progress2 برای نمایش درصد کل عملیات استفاده کنید و با nice اولویت پردازشی را بالا ببرید تا سیستم تعاملی‌تان کند نشود. 🛠️

نمونهٔ عملی (ایمن و قابل استفاده روی اکثر توزیع‌ها):
nice -n 10 rsync -aHAX --delete --info=progress2 /home/ /mnt/backup/home/


نکات کوتاه اما کلیدی:
- /source/ با اسلش انتهایی پوشهٔ محتوا را همگام‌سازی می‌کند؛ بدون اسلش، پوشه به‌عنوان زیرپوشه منتقل می‌شود. ↪️
- nice -n 10 اولویت پردازش را کم می‌کند (عدد بالاتر = اولویت کمتر). این باعث می‌شود عملیات سنگین کمتر روی تجربهٔ کاربر تاثیر بگذارد. 🧘‍♂️
- --info=progress2 وضعیت کل انتقال را به شکل درصد و سرعت کلی نشان می‌دهد؛ مفیدتر از --progress هنگام انتقال هزاران فایل. 📊

مواردی که باید مراقب باشید:
- اگر دستگاه ذخیره‌سازی خارجی یا شبکه‌ای دارید، سرعت به رابط و بار شبکه بستگی دارد؛ rsync فقط انتقال را مدیریت می‌کند. 🌐
- برای عملیات خیلی حساس به I/O می‌توان از ionice هم استفاده کرد، اما بسته به کرنل و برنامه‌ریز دیسک، تاثیر متفاوت خواهد بود.

در پایان: این ترکیب ساده سریع‌ترین راه برای داشتن پیش‌رفت قابل‌فهم و کاهش تأثیر روی سیستم در حین بکاپ‌گیری یا همگام‌سازی است. امتحانش کنید و بازخورد بگذارید — کاربردش در کارهای روزمره بسیار مفید است.

منبع رسمی: rsync — official documentation

🔖 #Linux #لینوکس #rsync #backup #linux #terminal

👤 Developix

💎 Channel: @DevelopixLinux
🔥2👎1
روی اکثر توزیع‌های مدرن مثل Debian, Ubuntu, Fedora و Arch الان systemd مدیر سرویس (init system) اصلیه. اگر باهاش راحت نباشیم، دیباگ کردن سرویس‌ها و اسکریپت‌هامون خیلی عذاب‌آوره.

تو این پست یه سناریوی واقعی رو می‌گیریم: اجرای یه اسکریپت ساده به‌عنوان سرویس، طوری که:

• بعد از هر بوت خودش اجرا بشه 🔁
• اگر کرش کرد خودکار دوباره بالا بیاد 💥➡️🚀
• لاگ‌هاش تو journalctl قابل پیگیری باشه 📝

سناریو:
فرض کن یه اسکریپت Python داری که هر ۱۰ ثانیه وضعیت دیسک رو لاگ می‌گیره یا مثلا یه worker ساده برای کارهای background. نمی‌خوای هر دفعه خودت اجراش کنی؛ می‌خوای مثل بقیه سرویس‌ها با systemctl کنترلش کنی.

قدم ۱: ساخت اسکریپت
مثال ساده؛ یه اسکریپت که هر ۱۰ ثانیه زمان سیستم رو لاگ می‌نویسه:

sudo mkdir -p /opt/time-logger
sudo nano /opt/time-logger/time-logger.sh


محتوای فایل:

#!/usr/bin/env bash

LOGFILE=/var/log/time-logger.log

while true; do
echo "$(date '+%Y-%m-%d %H:%M:%S') - time-logger is alive" \
| sudo tee -a "$LOGFILE" >/dev/null
sleep 10
done


بعد:

sudo chmod +x /opt/time-logger/time-logger.sh
sudo touch /var/log/time-logger.log
sudo chown $(whoami):$(whoami) /var/log/time-logger.log


قدم ۲: ساخت Unit برای systemd
حالا یه سرویس systemd تعریف می‌کنیم:

sudo nano /etc/systemd/system/time-logger.service


محتوا:

[Unit]
Description=Simple Time Logger Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/time-logger/time-logger.sh
Restart=always
RestartSec=5
User=%i

[Install]
WantedBy=multi-user.target


برای ساده‌تر شدن می‌تونی User رو مستقیم بذاری مثلاً:

User=yourusername


قدم ۳: Reload و فعال‌سازی سرویس

sudo systemctl daemon-reload
sudo systemctl enable --now time-logger.service
sudo systemctl status time-logger.service


اگر active (running) دیدی یعنی سرویس درست بالا آمده. لاگ‌ها:

journalctl -u time-logger.service -f


یا مستقیماً فایل:

tail -f /var/log/time-logger.log


نکات کاربردی
• تو داکیومنت رسمی systemd می‌تونی تمام گزینه‌ها رو ببینی:
systemd.service man page
• برای هر تغییری در فایل .service یادت نره sudo systemctl daemon-reload بزنی.
• اگر سرویس کرش می‌کنه، systemctl status و journalctl معمولا سرنخ خیلی خوبی می‌دن.

این الگو همون چیزیه که برای اجرای bot ها، worker ها، اسکریپت‌های backup و کلی کار دیگه روی سرورهای واقعی استفاده می‌شه. یه بار خوب یاد گرفته بشه، نصف دردسرهای «سرویس‌م خودبه‌خود می‌خوابه» حل می‌شه 🙂

امتحانش کن روی یه ماشین تست یا VM و هر جا مفید بود، توی سرورهات استفاده کن.

🔖 #Linux #لینوکس #Linux #systemd #Bash #Shell #Sysadmin #Service #GNU/Linux

👤 Developix

💎 Channel: @DevelopixLinux
7👍3🔥2
گاهی وسط کار یادت می‌افته که از پوشه‌ی پروژه‌هات Backup نگرفتی و استرس Crash یا خراب شدن Disk میاد سراغت. روی گنو/لینوکس خیلی راحت می‌شه با یه Bash Script ساده و ابزارهای استاندارد مثل cron این کار رو اتومات کرد.

ایده اینه 👇

هر شب مثلاً ساعت ۲ بامداد، از یک پوشه (مثلاً /home/user/projects) یه Archive فشرده گرفته بشه و توی یه مسیر امن ذخیره بشه. اگر هم خواستی بعداً می‌تونی اون رو روی یک Remote Server با scp یا rsync بفرستی.

مبنای کار هم چیزیه که توی مستندات رسمی Bash و manpageهای tar و cron هست (مثلاً man tar و man 5 crontab).

این یه Script خیلی ساده و در عین حال کاربردی برای Backup روزانه است:

#!/usr/bin/env bash

set -euo pipefail

SOURCE_DIR="/home/user/projects"
BACKUP_DIR="/home/user/backups"

mkdir -p "${BACKUP_DIR}"

DATE="$(date +%F_%H-%M-%S)"
ARCHIVE_NAME="projects_${DATE}.tar.gz"

/usr/bin/tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" "${SOURCE_DIR}"

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


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

• از set -euo pipefail استفاده شده تا Script روی خطاها Stop کنه و اشتباهات Silent نمونه.

• از date برای گذاشتن Timestamp روی اسم فایل استفاده می‌کنیم تا هر Backup فایل جدا داشته باشه و قبلی‌ها Overwrite نشن.

• مسیر کامل /usr/bin/tar توی Script استفاده شده، چون وقتی با cron اجرا می‌شه، PATH معمولاً خیلی محدودتر از Shell عادیه.

حالا برای اتومات کردن با cron:

۱️⃣ فایل رو مثلاً با اسم backup_projects.sh ذخیره کن و اجرایی‌اش کن:
chmod +x ~/backup_projects.sh


۲️⃣ cron کاربر رو ویرایش کن:
crontab -e


۳️⃣ این خط رو اضافه کن تا هر روز ساعت ۲ صبح اجرا بشه:
0 2 * * * /home/user/backup_projects.sh >> /home/user/backup.log 2>&1


Log رو هم توی backup.log نگه می‌داریم که اگر جایی مشکل شد، با یک tail -f backup.log راحت ببینی چی شده.

برای جزئیات بیشتر حتماً یه نگاه به مستندات رسمی بنداز:
GNU Bash Manual
crontab(5) man page

این مدل Scriptهای کوچیک واقعاً توی کار روزمره‌ی Sysadminها و Devها نجات‌بخشه؛ از پروژه‌های شخصی گرفته تا Serverهای جدی. همین امروز روی یه پوشه‌ی آزمایشی امتحانش کن و بعد آروم‌آروم Backupت رو حرفه‌ای‌تر کن 😉

🔖 #Linux #لینوکس #GNU/Linux #bash #backup #cron #shell_scripting #sysadmin

👤 Developix

💎 Channel: @DevelopixLinux
6👍2👎1
تو این پست می‌ریم سراغ یه کار کاملاً عملی که هر ادمین لینوکسی 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