پرش به محتوای اصلی
دانشگاه هوش مصنوعی — Daneshgah AI
برنامه‌نویسی و اتوماسیونخروجی: متنسطح: پیشرفته

پرامپت ساخت اسکریپت بکاپ خودکار پوشه با Bash

این پرامپت یک اسکریپت Bash می‌سازد که از یک پوشه به‌صورت زمان‌بندی‌شده بکاپ می‌گیرد و فایل‌ها را فشرده ذخیره می‌کند.

```bash #!/bin/bash # ======================= # Bash Backup Script # ======================= # CONFIGURATION SRC_DIR="/home/alex/documents" DEST_DIR="/mnt/backup_drive/backups" LOG_FILE="/mnt/backup_drive/backup_log.txt" EMAIL="user@example.com" # Set your alert email here MIN_FREE_SPACE_GB=5 # Minimum free space (in GB) required # --- Helper: Log functions --- log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE" } # --- Helper: Send failure email --- send_fail_email() { echo -e "Subject: Backup FAILED\nBackup failed: $1\nCheck log at $LOG_FILE" | sendmail "$EMAIL" } # --- Parse optional arguments --- SCHEDULE="" for arg in "$@"; do case $arg in --daily) SCHEDULE="daily";; --weekly) SCHEDULE="weekly";; esac done # --- Check disk space --- FREE_SPACE_GB=$(df -PB1G "$DEST_DIR" 2>/dev/null | awk 'NR==2 {print $4}' | sed 's/G//') if [[ -z "$FREE_SPACE_GB" || "$FREE_SPACE_GB" -lt "$MIN_FREE_SPACE_GB" ]]; then log "ERROR: Not enough disk space for backup." send_fail_email "Insufficient disk space." exit 1 fi # --- Prepare Backup File Name --- DATE_TAG=$(date +'%Y%m%d_%H%M%S') BACKUP_FILE="backup_${DATE_TAG}.tar.gz" BACKUP_PATH="$DEST_DIR/$BACKUP_FILE" # --- Perform backup --- log "Starting backup of $SRC_DIR to $BACKUP_PATH." tar -czf "$BACKUP_PATH" -C "$SRC_DIR" . if [ $? -ne 0 ]; then log "ERROR: Backup failed during compression." send_fail_email "tar failed." exit 1 fi log "Backup completed successfully." # --- Print scheduling instructions if needed --- if [ "$SCHEDULE" == "daily" ]; then log "Reminder: To schedule daily backups, add the following to your crontab:" echo "0 2 * * * /path/to/this_script.sh --daily" elif [ "$SCHEDULE" == "weekly" ]; then log "Reminder: To schedule weekly backups, add the following to your crontab:" echo "0 2 * * 0 /path/to/this_script.sh --weekly" fi ``` --- ## Usage Guide 1. **Configure email:** - Set your email address in the `EMAIL` variable in the script. 2. **Run script manually:** ```bash bash /path/to/this_script.sh ``` Or for scheduling reminders: ```bash bash /path/to/this_script.sh --daily bash /path/to/this_script.sh --weekly ``` 3. **Check logs:** - Backup logs and errors are recorded in `/mnt/backup_drive/backup_log.txt`. 4. **Automate:** - For daily or weekly backups, add the shown `crontab` lines to your crontab (using `crontab -e`). 5. **Email alerts:** - The script uses `sendmail` for alerts — ensure it's installed and configured on your system.

نمونه خروجی همین پرامپت — ساخته‌شده با ChatGPT (gpt-4.1). نتیجه‌ی شما با ابزار و تنظیمات دیگر می‌تواند متفاوت باشد.

متن پرامپت

You are an expert Linux Bash developer. Write a robust Bash script to back up the folder at #SOURCE_FOLDER to #DESTINATION_PATH, compressing the backup as a .tar.gz archive. The script should accept optional parameters for scheduling (daily, weekly), include error handling for disk space, log every run with timestamped entries in a log file, and alert the user by email in case of failure. Document each section of the script with clear comments. Output only the final code and a short step-by-step usage guide in Markdown. Do not use any copyrighted or proprietary content in your answer.
نسخه‌ی پرشده که نمونه‌ی بالا با آن ساخته شد
You are an expert Linux Bash developer. Write a robust Bash script to back up the folder at /home/alex/documents to /mnt/backup_drive/backups, compressing the backup as a .tar.gz archive. The script should accept optional parameters for scheduling (daily, weekly), include error handling for disk space, log every run with timestamped entries in a log file, and alert the user by email in case of failure. Document each section of the script with clear comments. Output only the final code and a short step-by-step usage guide in Markdown. Do not use any copyrighted or proprietary content in your answer.

پرامپت را برای خودتان پر کنید

جاهای خالی را به فارسی پر کنید؛ پرامپت آماده‌ی کپی پایین ساخته می‌شود.

ویژه‌ی VIP: همین پرامپت را در خود سایت اجرا کنید و جواب کامل را به فارسی بگیرید. ورود به حساب

کاربرد پرامپت

این پرامپت یک اسکریپت Bash تولید می‌کند که به‌صورت خودکار و زمان‌بندی‌شده، از پوشه‌ی موردنظر شما بکاپ می‌گیرد و خروجی را به‌طور فشرده ذخیره می‌کند. اسکریپت تولیدشده امکان تنظیم زمان‌بندی (روزانه یا هفتگی)، ثبت لاگ، مدیریت خطاها (مثل کمبود فضا) و ارسال هشدار از طریق ایمیل در صورت خطا را دارد. همین جامعیت، آن را برای کسانی که به امنیت فایل‌های خود اهمیت می‌دهند یا می‌خواهند مدیریت سرورهای لینوکسی را خودکار کنند، بسیار مفید و اثربخش می‌کند.

مزایا

  • ساخت یک اسکریپت کاربردی و انعطاف‌پذیر تنها با چند خط دستور
  • قابلیت شخصی‌سازی آسان برای نیازهای مختلف بکاپ
  • صرفه‌جویی در زمان و کاهش خطاهای انسانی در فرآیند بکاپ‌گیری
  • مستندسازی خوانا برای بخش‌های مختلف کد

مخاطبان هدف

  • مدیران سیستم و سرورهای لینوکسی که نیاز به بکاپ منظم دارند
  • برنامه‌نویسان و تیم‌های DevOps برای اتوماسیون بکاپ
  • کاربران حرفه‌ای لینوکس که می‌خواهند کنترل بیشتری بر فایل‌های خود داشته باشند
  • صاحبان کسب‌وکارهای کوچک که به ابزار بکاپ ساده و قابل اعتماد نیاز دارند

نحوه استفاده

  • #SOURCE_FOLDER: مسیر پوشه‌ای که می‌خواهید از آن بکاپ بگیرید؛ مثلاً `/home/user/documents`
  • #DESTINATION_PATH: مسیر ذخیره‌ی بکاپ‌های فشرده؛ مثلاً `/mnt/backups`
  • پارامتر زمان‌بندی: مثلاً `daily` (روزانه) یا `weekly` (هفتگی)
  • ایمیل هشدار: ایمیلی که در صورت خطا اخطار دریافت می‌کند؛ مثلاً `user@example.com`

مثال جایگذاری

  • بکاپ از `/var/www` به `/backup/www` با هشدار به `admin@site.com` به صورت روزانه
  • بکاپ پوشه‌ی عکس‌ها `/home/pics` به هارد اکسترنال `/media/backup` هر هفته
  • زمان‌بندی فقط دستی، بدون هشدار ایمیل (بخش ایمیل را حذف کنید)

در Google Flow نسبت تصویر/ویدیو اهمیتی ندارد؛ اما اگر اسکریپت بکاپ را برای زمان‌بندی‌های ویژه می‌خواهید، نوع زمان‌بندی را دقیق وارد کنید.

نکته‌های حرفه‌ای

  • برای بکاپ از پوشه‌های بزرگ، می‌توانید فشرده‌سازی با gzip یا bzip2 را جایگزین کنید تا سرعت یا حجم تغییر کند.
  • تنظیم دسترسی‌های صحیح روی لاگ و بکاپ‌ها امنیت اطلاعات را بسیار بیشتر می‌کند.
  • با افزودن رمزنگاری به بکاپ (مثل gpg)، امنیت کامل‌تری خواهید داشت.

پرسش‌های متداول درباره این ویدیو

ChatGPT یا Claude بهترین گزینه‌ها هستند؛ هر دو به Bash و منطق اسکریپت‌نویسی مسلط‌اند.

پرامپت‌های مشابه