−25%

Windows کی سالانہ ادائیگی پر، 31 اکتوبر تک۔ پلانز دیکھیں

EQVPS

restic سے VPS کا بیک اپ کیسے لیں (انکرپٹڈ، سرور سے باہر)

restic کے ساتھ VPS کے انکرپٹڈ اور بغیر تکرار والے بیک اپ: S3 سے مطابقت رکھنے والی اسٹوریج یا دوسرے سرور پر ریپوزٹری، systemd ٹائمر، ریٹینشن اور بحالی کا ٹیسٹ۔

ہر کسی کے پاس بیک اپ ہوتا ہے جب تک وہ اسے بحال کرنے کی کوشش نہ کرے۔ فولڈر خالی نکلتا ہے، cron جاب مارچ میں مر چکی ہوتی ہے، یا آرکائیو اسی ڈسک پر ہوتا ہے جو ابھی خراب ہوئی۔ restic ان میں سے زیادہ تر مسئلے حل کر دیتا ہے: یہ آپ کی طرف انکرپٹ کرتا ہے، ہر ڈیٹا ٹکڑا ایک بار محفوظ کرتا ہے، اور ایک فائل کی بحالی کو پورے سرور کے بیک اپ جتنا آسان بنا دیتا ہے۔

یہ ایک ایسا سیٹ اپ ہے جس پر ہم واقعی بھروسہ کریں گے، Ubuntu یا Debian پر۔

1. restic انسٹال کریں

apt update && apt install -y restic
restic self-update

ڈسٹری بیوشن کے پیکجز پیچھے رہ جاتے ہیں؛ self-update موجودہ ورژن لے آتا ہے۔

2. ریپوزٹری کے لیے جگہ چنیں

ریپوزٹری اس سرور پر نہیں ہونی چاہیے جس کی آپ حفاظت کر رہے ہیں۔ دو عام انتخاب:

3. رسائی کی معلومات محفوظ کریں

سب کچھ ایک ایسی فائل میں رکھیں جسے صرف 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 کا مواد اپنے پاس ورڈ مینیجر میں کاپی کریں۔ اس کے بغیر بیک اپ ڈی کرپٹ نہیں ہو سکتے — نہ آپ سے، نہ کسی اور سے۔

4. ریپوزٹری شروع کریں اور پہلا بیک اپ لیں

source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
  --exclude-caches --exclude '/root/.cache'
restic snapshots

راستوں کو وہاں کے مطابق کریں جہاں آپ کا ڈیٹا واقعی ہے۔ Docker والیوم /var/lib/docker/volumes میں ہوتے ہیں؛ ایپس کا ڈیٹا اکثر /srv یا /opt میں۔

5. ڈیٹابیس: پہلے ڈمپ، پھر بیک اپ

چلتے ڈیٹابیس کی خام فائلوں کا بیک اپ نہ لیں۔ بیک اپ سے عین پہلے ڈمپ بنائیں:

mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump

/var/backups/db کو بیک اپ کے راستوں میں شامل کریں۔ ہماری PostgreSQL گائیڈ میں ڈمپ کے بارے میں مزید ہے۔

6. 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= والی لائن میں رکھیں۔

7. واقعی کچھ بحال کریں

یہی مرحلہ "ہمارے پاس بیک اپ ہیں" کو حقیقت بناتا ہے۔ ایک فولڈر کو عارضی ڈائریکٹری میں واپس لائیں اور دیکھیں:

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 پلان کافی ہے۔

عمومی سوالات

اگر restic کا پاس ورڈ کھو جائے تو کیا ہو گا؟

بیک اپ ہمیشہ کے لیے ضائع ہو جائیں گے۔ restic سب کچھ کلائنٹ کی طرف انکرپٹ کرتا ہے اور کوئی ریکوری کلید نہیں ہوتی۔ پاس ورڈ کو پاس ورڈ مینیجر میں رکھیں، صرف اس سرور پر نہیں جس کا بیک اپ لے رہے ہیں۔

ریپوزٹری کہاں ہونی چاہیے؟

سرور کے علاوہ کہیں بھی: S3 سے مطابقت رکھنے والی آبجیکٹ اسٹوریج، SFTP کے ذریعے کوئی دوسرا VPS یا گھر پر کوئی مشین۔ اسی ڈسک پر رکھا بیک اپ اسی ڈسک کے ساتھ ختم ہو جاتا ہے۔

restic سے ڈیٹابیس کا بیک اپ کیسے لوں؟

پہلے ڈمپ بنائیں اور اسی ڈمپ کا بیک اپ لیں — PostgreSQL کے لیے 'pg_dump -Fc'، MySQL کے لیے 'mysqldump --single-transaction'۔ چلتے ڈیٹابیس کی فائلیں کاپی کرنے سے ایسا بیک اپ مل سکتا ہے جو چلے ہی نہیں۔

بیک اپ کتنی جگہ لیتے ہیں؟

آپ کی توقع سے کم۔ restic فائلوں کو ٹکڑوں میں بانٹتا ہے اور ہر ٹکڑا ایک بار محفوظ کرتا ہے، اس لیے کم بدلنے والے سرور کے روزانہ اسنیپ شاٹ صرف بدلا ہوا ڈیٹا شامل کرتے ہیں۔

کیا مجھے اب بھی Managed Backups چاہییں؟

یہ مختلف مسائل حل کرتے ہیں۔ Managed Backups پورے سرور کے روزانہ ریسٹور پوائنٹس دیتے ہیں جنہیں آپ ڈیش بورڈ سے واپس لاتے ہیں۔ restic فائل کی سطح پر، سرور سے باہر اور آپ کے کنٹرول میں کاپیاں دیتا ہے۔ بہت سے لوگ دونوں استعمال کرتے ہیں۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔