آموزش کامل کپی و همگام‌سازی فایل‌ها و دایرکتوری‌ها با rsync در لینوکس پرینت


 

## 🎯 آموزش کامل کپی و همگام‌سازی فایل‌ها و دایرکتوری‌ها با `rsync` در لینوکس

`rsync` یکی از قدرتمندترین ابزارها برای کپی و همگام‌سازی فایل‌ها و پوشه‌ها، هم به صورت **محلی** و هم **از راه دور (remote)** در لینوکس است. این ابزار بسیار سریع، انعطاف‌پذیر و قابل اعتماد است.

در این مقاله با کاربردهای مختلف `rsync` آشنا می‌شویم.

---

## 🛠️ نصب rsync

در اکثر توزیع‌های لینوکس، `rsync` به صورت پیش‌فرض نصب شده. اگر نصب نبود:

**Debian/Ubuntu:**
```bash
sudo apt update
sudo apt install rsync
```

**CentOS/RHEL/Fedora:**
```bash
sudo dnf install rsync
```

---

# بخش اول: 📂 کپی و همگام‌سازی محلی (Local)

### ✅ کپی فایل یا پوشه در همان سیستم

**کپی یک فایل:**
```bash
rsync -avh /path/to/source/file.txt /path/to/destination/
```

**کپی یک دایرکتوری کامل:**
```bash
rsync -avh /path/to/source/ /path/to/destination/
```
🔹 توجه کن که `/` در انتهای مسیر مبدا باعث می‌شود محتوای داخل پوشه منتقل شود، نه خود پوشه.

---

# بخش دوم: 🌍 کپی و همگام‌سازی از راه دور (Remote)

### ✅ کپی فایل‌ها بین دو سیستم از طریق SSH

**کپی از سیستم محلی به سیستم ریموت:**
```bash
rsync -avz /path/to/source/ username@remote_host:/path/to/destination/
```

**کپی از سیستم ریموت به سیستم محلی:**
```bash
rsync -avz username@remote_host:/path/to/source/ /path/to/destination/
```

🔹 گزینه `-z` برای فشرده‌سازی داده‌ها حین انتقال است (سرعت بالاتر در شبکه).

---

# ✨ گزینه‌های مهم در rsync

| گزینه | توضیح |
|------|-------|
| `-a` | حالت آرشیو (حفظ مالکیت، پرمیشن‌ها، تایم‌استمپ و...) |
| `-v` | حالت verbose (نمایش جزییات هنگام کپی) |
| `-h` | نمایش حجم فایل‌ها به صورت قابل خواندن (human-readable) |
| `-z` | فشرده‌سازی داده‌ها هنگام انتقال |
| `-P` | نمایش پیشرفت عملیات و امکان ادامه از فایل‌های نصفه |
| `--delete` | حذف فایل‌هایی که در مقصد دیگر وجود ندارند (دقیقاً سینک شود) |

---

# 🔥 مثال‌های حرفه‌ای‌تر با rsync

### کپی با نمایش میزان پیشرفت
```bash
rsync -avhP /source/ /destination/
```

### فقط کپی فایل‌هایی که تغییر کرده‌اند
(مثلاً اگر فقط یک فایل جدید اضافه یا تغییر کرده، فقط همان منتقل شود):
```bash
rsync -av /source/ /destination/
```

### کپی به صورت رزرو شده (با SSH پورت خاص)
```bash
rsync -avz -e "ssh -p 2222" /source/ username@remote_host:/destination/
```

### کپی و همگام‌سازی دقیق (حذف فایل‌های اضافه در مقصد)
```bash
rsync -av --delete /source/ /destination/
```

---

# 🧠 نکات پیشرفته‌ی rsync

- می‌توانید با کران‌جاب (cron) عملیات rsync را اتوماتیک زمان‌بندی کنید (مثلاً هر شب ساعت ۲ بامداد بکاپ بگیرید).
- `rsync` فقط تفاوت‌ها (differences) را منتقل می‌کند، نه کل فایل، پس در انتقال‌های حجیم بسیار سریع‌تر از `scp` است.
- می‌توانید از `rsync` برای تهیه بکاپ‌های incremental یا mirror استفاده کنید.

---

# 🧩 یک نمونه کران‌جاب برای بکاپ روزانه با rsync:

ویرایش کران‌جاب:
```bash
crontab -e
```

افزودن خط زیر:
```bash
0 2 * * * rsync -avz /data/ backupuser@backupserver:/backups/data/
```
🔹 این دستور هر روز ساعت ۲ صبح از `/data/` بکاپ می‌گیرد و روی سرور بکاپ ذخیره می‌کند.

---

## ✅ نتیجه‌گیری

`rsync` یکی از بهترین ابزارها برای:
- کپی فایل‌ها به صورت محلی یا راه دور
- همگام‌سازی دایرکتوری‌ها
- بکاپ‌گیری هوشمند
- صرفه‌جویی در پهنای باند و زمان

استفاده‌ی حرفه‌ای از `rsync` یکی از مهارت‌های حیاتی هر ادمین لینوکس است. 🚀

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت