هر څوک بیک اپ لري تر هغې چې یو بېرته راوګرځوي. فولډر خالي ووځي، د cron دنده په مارچ کې مړه شوې وي، یا آرشیف په هماغه ډیسک وي چې همدا اوس خراب شو. restic له دې ډېری حلوي: ستاسو په لوري کوډ کوي، د ډېټا هره ټوټه یو ځل ساتي، او د یو فایل بېرته راګرځول د ټول سرور د بیک اپ په څېر اسانه کوي.
دا یو داسې تنظیم دی چې موږ به یې واقعاً باور وکړو، په Ubuntu یا Debian کې.
۱. restic نصب کړئ
apt update && apt install -y restic
restic self-update
د ډیسټریبیوشن پکېجونه وروسته پاتې وي؛ self-update اوسنۍ نسخه راوړي.
۲. د ریپوزیټري لپاره ځای وټاکئ
ریپوزیټري باید په هغه سرور نه وي چې ساتنه یې کوئ. دوه عام انتخابونه:
- د SFTP له لارې بل سرور:
sftp:backup@203.0.113.20:/srv/restic/web1 - د S3 سره مطابق د شیانو ذخیره:
s3:https://s3.example.com/my-bucket/web1
۳. د لاسرسي معلومات وساتئ
هر څه په یو داسې فایل کې وساتئ چې یوازې root یې لوستلی شي، څو ټایمر او ستاسو shell ورته تنظیمات وکاروي:
cat > /root/.restic-env <<'EOF'
export RESTIC_REPOSITORY="s3:https://s3.example.com/my-bucket/web1"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
export AWS_ACCESS_KEY_ID="your-key-id"
export AWS_SECRET_ACCESS_KEY="your-secret"
EOF
openssl rand -base64 32 > /root/.restic-pass
chmod 600 /root/.restic-env /root/.restic-pass
اوس د /root/.restic-pass منځپانګه خپل پاسورډ مدیر ته کاپي کړئ. پرته له هغه بیک اپونه نشي خلاصېدای — نه ستاسو لخوا، نه د بل چا لخوا.
۴. ریپوزیټري پیل کړئ او لومړی بیک اپ واخلئ
source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
--exclude-caches --exclude '/root/.cache'
restic snapshots
لارې له هغه ځای سره برابرې کړئ چېرې چې ستاسو ډېټا واقعاً ده. د Docker volumes په /var/lib/docker/volumes کې دي؛ د اپلیکېشنونو ډېټا اکثراً په /srv یا /opt کې.
۵. ډېټابېسونه: لومړی ډمپ، بیا بیک اپ
د چلېدونکي ډېټابېس د خامو فایلونو بیک اپ مه اخلئ. د بیک اپ څخه سمدستي مخکې ډمپ واخلئ:
mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump
/var/backups/db د بیک اپ لارو ته ورزیات کړئ. زموږ د PostgreSQL لارښود د ډمپونو په اړه نور معلومات لري.
۶. د systemd په مرسته یې مهالوېش کړئ
دلته ټایمر له cron ښه دی: په journal کې لاګ لیکي او که سرور په ټاکلي وخت بند و، پاتې شوی چلول وروسته پوره کوي.
# /etc/systemd/system/restic-backup.service
[Unit]
Description=restic backup
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'source /root/.restic-env && restic backup /etc /home /root /srv /var/www /var/backups/db --exclude-caches && restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune'
# /etc/systemd/system/restic-backup.timer
[Unit]
Description=Daily restic backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl list-timers restic-backup.timer
forget --prune اوه ورځني، څلور اونیز او شپږ میاشتني سنېپ شاټونه ساتي او پاتې ړنګوي. که د ډېټابېس د ډمپ ګام لرئ، هغه په یوه ExecStartPre= کرښه کې واچوئ.
۷. واقعاً یو څه بېرته راوګرځوئ
همدا ګام "موږ بیک اپ لرو" په حقیقت بدلوي. یو فولډر یو لنډمهاله ډایرکټري ته بېرته راوګرځوئ او وګورئ:
source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check
دا یو ځل همدا اوس وکړئ او بیا هر څو میاشتې. restic check د ریپوزیټري جوړښت تاییدوي؛ بېرته راګرځول ثابتوي چې ډېټا واقعاً شته.
restic او Managed Backups
دوی سیالان نه دي. Managed Backups هره ورځ د ټول سرور یو د بېرته راګرځولو ټکی جوړوي چې له ډشبورډ یې بېرته راګرځوئ — د ناکامه تازه کولو وروسته چټک حل. بیه یې په میاشت $2 ده او په هر کلني پلان کې وړیا شامل دي. restic د فایل په کچه، له سرور بهر، په هغه ذخیره کې کاپیانې درکوي چې تاسو یې کنټرولوئ — دا هغه وخت مهم دی چې ستونزه یو فایل وي چې تېره سهشنبه ړنګ شو، یا کله چې غواړئ یوه کاپي بشپړه زموږ له زیربنا بهر ولرئ.
که حساسه ډېټا ساتئ، دا د ډیسک د بشپړ کوډ کولو سره یوځای کړئ، یا د خپل بیک اپ منزل د چلولو لپاره د کوډ شوې ذخیرې کارونه وګورئ. د ډېرو کوچنیو سرورونو او د هغوی د بیک اپ دندو لپاره Micro پلان بس دی.
تبصرې
لا تبصرې نشته. لومړی اوسئ.