ব্যাকআপ সরঞ্জাম হিসাবে জিআইটি


101

একটি সার্ভারে, গিট ইনস্টল করুন

cd /
git init
git add .
git commit -a -m "Yes, this is server"

তারপরে /.git/একটি নেটওয়ার্ক ড্রাইভ (সান, এনএফএস, সাম্বা যাই হোক না কেন) বা বিভিন্ন ডিস্কের দিকে নির্দেশ করুন। পরিবর্তনগুলি আপডেট করতে প্রতি ঘন্টা / দিনে ইত্যাদি ক্রোন জব ব্যবহার করুন। .Git ডিরেক্টরিতে সমস্ত সার্ভার ফাইলের সংস্করণযুক্ত অনুলিপি থাকতে পারে (/ অবাস্তব / জটিল ইত্যাদি যেমন / proc, / dev ইত্যাদি বাদ দিয়ে) copy

অ-গুরুত্বপূর্ণ ডেভলপমেন্ট সার্ভারের জন্য যেখানে আমি সঠিক ব্যাকআপ সিস্টেমে সেট আপ করার ঝামেলা / ব্যয় চাই না এবং যেখানে ব্যাকআপগুলি কেবল সুবিধার জন্য হবে (IE আমাদের এই সার্ভারটি ব্যাকআপ করার দরকার নেই তবে এটি সংরক্ষণ করবে) কিছু সময় যদি সমস্যাগুলি ভুল হয়ে থাকে), এটি কী কোনও বৈধ ব্যাকআপ সমাধান হতে পারে বা এটি কেবল পোপের একটি বড় স্তূপে পড়ে যাবে?


3
একই ধারণা ব্যবহার করে স্পার্কলেশার করে না ??
বি

@ বি 14 ডি 3 আমি মনে করি স্পার্কলেসারে একটি ধরণের ড্রপবক্স টাইপ জিনিস, তবে আমি এটি সন্ধান করব
স্মার্ট

2
আপনি ঠিক বলেছেন, তবে এটি কিছুটা বকআপ জিনিস তৈরি করার জন্য গিট ব্যবহার করে (কয়েকটি পিসিতে অনুলিপি করা এবং ফাইলগুলির সংস্করণ নিয়ন্ত্রণ করা);)
বি

এটির সাথে বড় সমস্যাটি হ'ল কোনও কেন্দ্রীয় নিয়ন্ত্রণ নেই - কোনও রক্ষণাবেক্ষণ বা ব্যাকআপ বৈধতা যাচাই করার জন্য আপনাকে মেশিনে সরাসরি (এসএসএস) অ্যাক্সেস করতে হবে। আমি সর্বদা বাক্সগুলিতে ব্যাক আপ করার জন্য একটি অ্যাপ্লিকেশন ইনস্টল করা দেখতে পাই তারপরে কেন্দ্রীয় অবস্থান থেকে এগুলি পরিচালনা করা অনেক বড় জয়।
হাফিচুক

@ হাফিচুক পুতুল / শেফের মতো সরঞ্জাম সহ এটি এত বড় সমস্যা নয়, তবে আমি আপনার বক্তব্যটি দেখছি।
এবার Smudge

উত্তর:


88

আপনি বোকা ব্যক্তি নন। gitব্যাকআপ প্রক্রিয়া হিসাবে ব্যবহার করা আকর্ষণীয় হতে পারে এবং অন্যান্য লোকেরা যা বলেছে তা সত্ত্বেও gitবাইনারি ফাইলগুলির সাথে ঠিক কাজ করে। এই বিষয়ে আরও তথ্যের জন্য এই পৃষ্ঠাটি গিট বুক থেকে পড়ুন । মূলত, যেহেতু gitএকটি ব-দ্বীপ স্টোরেজ প্রক্রিয়া ব্যবহার করছে না, আসলেই গ্রাহ্য না করে কি আপনার ফাইল এর মত দেখতে (কিন্তু উপযোগ git diffএকটি স্টক কনফিগারেশন সঙ্গে বাইনারি ফাইল জন্য বেশ কম)।

gitব্যাকআপ ব্যবহারের ক্ষেত্রে সবচেয়ে বড় সমস্যাটি হ'ল এটি বেশিরভাগ ফাইল সিস্টেম মেটাটাটা সংরক্ষণ করে না। বিশেষত, gitরেকর্ড করে না:

  • ফাইল গ্রুপ
  • ফাইল মালিকরা
  • ফাইল অনুমতি ("এই নির্বাহযোগ্য ছাড়া অন্য")
  • বর্ধিত বৈশিষ্ট্য

আপনি এই তথ্যটি আপনার ভান্ডারগুলিতে স্পষ্টভাবে রেকর্ড করার জন্য সরঞ্জামগুলি লিখে এটি সমাধান করতে পারেন, তবে এই অধিকারটি অর্জন করা কৌশলপূর্ণ হতে পারে।

গিট ব্যাকআপ মেটাডেটার জন্য একটি গুগল অনুসন্ধান বেশিরভাগ ফলাফল এনেছে যা পড়া পঠনযোগ্য বলে মনে হচ্ছে (কিছু সরঞ্জাম যা ইতিমধ্যে আমি এখানে উত্থাপিত সমস্যাগুলির জন্য ক্ষতিপূরণ দেওয়ার চেষ্টা করেছি)।

এন্ডকিপারটি ব্যাক আপ করার জন্য তৈরি হয়েছিল /etcএবং এর মধ্যে অনেকগুলি সমস্যার সমাধান করে।


15
এসিএল / অনুমতি উল্লেখের জন্য +1
ল্যারি সিলভারম্যান

22
গিট খালি ডিরেক্টরিও সঞ্চয় করে না।
ফ্লিম

এবং এটি ইতিহাসের মাধ্যমে ফাইল মুভিং / নামকরণ ট্র্যাকিংয়ের জন্যও স্তন্যপান হয়।
ক্রেগক্স

1
যেহেতু Git বাইনারি ফাইলগুলির সাথে খুব ভাল মোকাবেলা না করে, আপনি এছাড়াও দেখব করতে চাইতে পারেন Git অ্যানেক্স , যা আরো ভালো করতে সাহায্য করে। তবে গিটটি কিছুটা হলেও এর ধারণার পরিবর্তন করে।
ওয়াউটার ভারহেলস্ট

1
আমার মতামত আপনি
গিটটি

21

আমি এটি ব্যবহার করি নি, তবে আপনি সম্ভবত গুপের উপর ভিত্তি করে একটি ব্যাকআপ সরঞ্জাম যা সন্ধান করতে পারেন ।


এর আগে কখনো ইউনিভার্সিটি অব প্রফেশনালস দেখা, দেখতে ভালই লাগছে
এবার Smudge

1
আমার হার্ড ড্রাইভ ক্র্যাশ হওয়ার কয়েক দিন আগে আমি সম্প্রতি বুপ ব্যবহার শুরু করেছি;) পুনরুদ্ধার ঠিকঠাক হয়ে গেল, তাই প্রস্তাবিত!
আন্দ্রে পরামেস

1
@ আন্দ্রেপ্যারামস তাই আপনি যা বলছেন তা হ'ল আপনি যখন বুপ ইনস্টল করার পরে আপনার হার্ড ড্রাইভটি ক্র্যাশ হয়ে গেছে ... মিমি মাইএইচএইচ ... :) মজা করছেন
হোফনারওয়ার্লি

12

এটি একটি বৈধ ব্যাকআপ সমাধান হতে পারে, ইত্যাদি সম্পর্কিত ধারণাটি এই ধারণার উপর ভিত্তি করে। কিন্তু তার ওপর নজর রাখুন .gitডিরেক্টরির অনুমতি অন্যথায় ঠেলাঠেলি /etc/shadowমধ্যে পাঠযোগ্য হতে পারে .gitডিরেক্টরি।


11

প্রযুক্তিগতভাবে আপনি এটি করতে পারলে আমি এর বিরুদ্ধে দুটি ক্যাভেট রাখি:

1, আপনি বাইনারি ডেটার জন্য উত্স সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করছেন। সুতরাং আপনি এটি এমন কোনও কিছুর জন্য ব্যবহার করছেন যা এটির জন্য ডিজাইন করা হয়নি।

2, আমি আপনার বিকাশ প্রক্রিয়া সম্পর্কে উদ্বিগ্ন যদি আপনার কাছে একটি নতুন মেশিন তৈরির জন্য কোনও প্রক্রিয়া (ডকুমেন্টেশন বা স্বয়ংক্রিয়) না থাকে। আপনি যদি একটি বাস কিনে আঘাত পান তবে কে কী করবে এবং কোনটি গুরুত্বপূর্ণ তা জানতে পারে?

বিপর্যয় পুনরুদ্ধার গুরুত্বপূর্ণ, তবে সবকিছু ব্যাকআপের চেয়ে নতুন বিকাশ বাক্সের সেটআপ স্বয়ংক্রিয়ভাবে করা (স্ক্রিপ্ট) করা আরও ভাল। আপনার স্ক্রিপ্ট / ডকুমেন্টেশনের জন্য অবশ্যই গিট ব্যবহার করুন তবে কম্পিউটারে প্রতিটি ফাইলের জন্য নয়।


4
বিকাশ বাক্সগুলি সবই কিক স্টার্ট ফাইল থেকে আসে এবং এটির পুনর্নির্মাণের গড়পড়তা গড় বাক্সটি প্রায় 2 বা 3 মাস স্থায়ী হয়। কিন্তু লোকেরা কনফিগারগুলি পরিবর্তন করে এবং জিনিসগুলি করে, আমরা বাক্সগুলি পুনর্নির্মাণ করি এবং লোকেরা বলে "আরে, আমি জানি আমি এটি উত্স নিয়ন্ত্রণে রাখিনি তবে সেই বাক্সটিতে আমার কিছুটা ছোঁয়া পড়েছিল" এবং আমি তাদের বোকা বলে হেসেছিলাম। চারপাশে, ভাল সময়। বাইনারি ডেটা হ'ল দুশ্চরিত্রা, এটি এমন কিছু যা আমি ঝরনার সময় পুরোপুরি উপেক্ষা করতাম।
স্মুড

যারা আপনারা মৌলিক প্রিন্সিপালকে অনুসরণ করতে ব্যর্থ হন তাদের প্রতি আপনার মনোভাবকে প্রশংসা করি। ব্যক্তিগতভাবে আমার আপনার মত একই অবস্থা, তবে আমার কাছে একটি গিট রিপোজিটরি রয়েছে যা সমস্ত কনফিগারেশনের ফাইলগুলিতে লিঙ্ক করে যা সমস্ত ক্যাচের চেয়ে গুরুত্বপূর্ণ হতে পারে। সেটআপ ধাপ সহ একটি টিএসটি ডক
ফিল হ্যানেন্ট

1
আমার মনে হয় গিটার বাইনারি ফাইলগুলির জন্য বেশ ভাল কাজ করে, গুগল অ্যান্ড্রয়েডের রেপোর বেশিরভাগ অংশই প্রাক বিল্ট এক্সিকিউটেবলের গিট রিপোজিটরি।
user377178

6

আমি আমার উইন্ডোজ সিস্টেমের জন্য ব্যাকআপ হিসাবে গিট ব্যবহার করি এবং এটি অবিশ্বাস্যভাবে কার্যকর হয়েছে been পোস্টের নীচে আমি স্ক্রিপ্টগুলি উইন্ডোজ সিস্টেমে কনফিগার করতে ব্যবহার করি show কোনও সিস্টেমের জন্য গিট ব্যাকআপ হিসাবে ব্যবহার করা 2 টি বড় সুবিধা প্রদান করে:

  1. বাণিজ্যিক সমাধানগুলির বিপরীতে প্রায়শই তাদের নিজস্ব মালিকানা বিন্যাস ব্যবহার করা হয়, আপনার ব্যাকআপটি একটি মুক্ত উত্স ফর্ম্যাটে যা ব্যাপকভাবে সমর্থিত এবং খুব ভাল নথিভুক্ত। এটি আপনাকে আপনার ডেটার পুরো নিয়ন্ত্রণ দেয়। কোন ফাইলগুলি কখন এবং কখন পরিবর্তিত হয়েছে তা দেখা খুব সহজ। আপনি যদি নিজের ইতিহাসকে ছাঁটাই করতে চান তবে আপনি এটিও করতে পারেন। আপনার ইতিহাস থেকে কিছু মুছে ফেলতে চান? সমস্যা নেই. আপনার ফাইলের একটি সংস্করণ ফিরে পাওয়া যে কোনও গিট কমান্ডের মতোই সহজ।
  2. আপনি যতগুলি চান বা যতগুলি আয়না চান, এবং সবগুলি কাস্টমাইজড ব্যাকআপের সময় থাকতে পারে। আপনি আপনার স্থানীয় আয়নাটি পাবেন যা ধীরে ধীরে ইন্টারনেট ট্র্যাফিকের দ্বারা ভারসাম্যহীন এবং এইভাবে আপনাকে (1) সারা দিন ধরে আরও ঘন ঘন ব্যাকআপগুলি করার ক্ষমতা এবং (২) দ্রুত পুনরুদ্ধারের সময় দেয়। (ঘন ঘন ব্যাকআপগুলি একটি বিশাল প্লাস, কারণ আমি নথিটি হারাতে সবচেয়ে বেশি সময় খুঁজে পাইছি ব্যবহারকারী-ত্রুটিযুক্ত example দূরবর্তী আয়না, যা কোনও স্থানীয় বিপর্যয় বা চুরির ক্ষেত্রে ডেটা সুরক্ষার সুবিধা দেয়। এবং ধরুন আপনি নিজের ইন্টারনেট ব্যান্ডউইদথ সংরক্ষণ করতে কাস্টমাইজড সময়ে আপনার রিমোট আয়নাটি ব্যাক আপ করতে চান? সমস্যা নেই.

নীচের লাইন: একটি গিট ব্যাকআপ আপনাকে আপনার ব্যাকআপগুলি কীভাবে ঘটে তা নিয়ন্ত্রণে অবিশ্বাস্য পরিমাণ শক্তি সরবরাহ করে।

আমি এটি আমার উইন্ডোজ সিস্টেমে কনফিগার করেছি। প্রথম পদক্ষেপটি হল স্থানীয় গিট রেপো তৈরি করা যেখানে আপনি আপনার সমস্ত স্থানীয় ডেটা প্রতিশ্রুতিবদ্ধ করবেন। আমি একটি স্থানীয় দ্বিতীয় হার্ড ড্রাইভ ব্যবহার করার পরামর্শ দিচ্ছি, তবে একই হার্ডড্রাইভ ব্যবহার করে কাজ করবে (তবে এটি আশা করা যায় আপনি এটিকে দূরবর্তী কোথাও ঠেলে দেবেন, নাহলে হার্ডড্রাইভ মারা গেলে আপনার স্ক্রুড হবে।)

আপনাকে প্রথমে সাইগউইন ইনস্টল করতে হবে (আরএসসিএনসি সহ) এবং উইন্ডোজের জন্য গিটও ইনস্টল করতে হবে: http://git-scm.com/download/win

এর পরে, আপনার স্থানীয় গিট রেপো তৈরি করুন (কেবল একবার চালানো):

Init-repo.bat:

@echo off
REM SCRIPT PURPOSE: CREATE YOUR LOCAL GIT-REPO (RUN ONLY ONCE)

REM Set where the git repository will be stored
SET GBKUP_LOCAL_MIRROR_HOME=E:\backup\mirror


REM Create the backup git repo. 
SET GIT_PARAMS=--git-dir=%GBKUP_LOCAL_MIRROR_HOME%\.git --work-tree=%GBKUP_LOCAL_MIRROR_HOME% 
mkdir %GBKUP_LOCAL_MIRROR_HOME%
git %GIT_PARAMS% init
git %GIT_PARAMS% config core.autocrlf false
git %GIT_PARAMS% config core.ignorecase false 
git %GIT_PARAMS% config core.fileMode false
git %GIT_PARAMS% config user.email backup@yourComputerName
git %GIT_PARAMS% config user.name backup

REM add a remote to the git repo.  Make sure you have set myRemoteServer in ~/.ssh/config   
REM The path on the remote server will vary.  Our remote server is a Windows machine running cygwin+ssh.  
REM For better security, you could install gitolite on the remote server, and forbid any non-fast-forward merges, and thus stop a malicious user from overwriting your backups.
git %GIT_PARAMS% remote add origin myRemoteServer:/cygdrive/c/backup/yourComputerName.git

REM treat all files as binary; so you don't have to worry about autocrlf changing your line endings
SET ATTRIBUTES_FILE=%GBKUP_LOCAL_MIRROR_HOME%\.git\info\attributes
echo.>> %ATTRIBUTES_FILE% 
echo *.gbkuptest text>> %ATTRIBUTES_FILE% 
echo * binary>> %ATTRIBUTES_FILE% 
REM compression is often a waste of time with binary files
echo * -delta>> %ATTRIBUTES_FILE% 
REM You may need to get rid of windows new lines. We use cygwin's tool
C:\cygwin64\bin\dos2unix %ATTRIBUTES_FILE%

এরপরে, আমাদের আমাদের ব্যাকআপ স্ক্রিপ্ট র‍্যাপার রয়েছে, যা উইন্ডোজ শিডিউলার দ্বারা নিয়মিত ডাকা হবে:

gbackup.vbs:

' A simple vbs wrapper to run your bat file in the background
Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c C:\opt\gbackup\gbackup.bat"
oShell.Run strArgs, 0, false

এরপরে, আমাদের নিজেই ব্যাকআপ স্ক্রিপ্ট রয়েছে যা র‍্যাপারটি কল করে:

gbackup.bat:

    @echo off

REM Set where the git repository will be stored
SET GBKUP_LOCAL_MIRROR_HOME=E:\backup\mirror
REM the user which runs the scheduler
SET GBKUP_RUN_AS_USER=yourWindowsUserName
REM exclude file
SET GBKUP_EXCLUDE_FILE=/cygdrive/c/opt/gbackup/exclude-from.txt

SET GBKUP_TMP_GIT_DIR_NAME=git-renamed
for /f "delims=" %%i in ('C:\cygwin64\bin\cygpath %GBKUP_LOCAL_MIRROR_HOME%') do set GBKUP_LOCAL_MIRROR_CYGWIN=%%i

REM rename any .git directories as they were (see below command)
for /r %GBKUP_LOCAL_MIRROR_HOME% %%i in (%GBKUP_TMP_GIT_DIR_NAME%) do ren "%%i" ".git" 2> nul

SET RSYNC_CMD_BASE=C:\cygwin64\bin\rsync -ahv --progress --delete --exclude-from %GBKUP_EXCLUDE_FILE%

REM rsync all needed directories to local mirror
%RSYNC_CMD_BASE% /cygdrive/c/dev %GBKUP_LOCAL_MIRROR_CYGWIN%
%RSYNC_CMD_BASE% /cygdrive/c/Users/asmith %GBKUP_LOCAL_MIRROR_CYGWIN%
%RSYNC_CMD_BASE% /cygdrive/c/Users/bsmith %GBKUP_LOCAL_MIRROR_CYGWIN%

cacls %GBKUP_LOCAL_MIRROR_HOME% /t /e /p  %GBKUP_RUN_AS_USER%:f

REM rename any .git directories as git will ignore the entire directory, except the main one
for /r %GBKUP_LOCAL_MIRROR_HOME% %%i in (.git) do ren "%%i" "%GBKUP_TMP_GIT_DIR_NAME%" 2> nul
ren %GBKUP_LOCAL_MIRROR_HOME%\%GBKUP_TMP_GIT_DIR_NAME% .git

REM finally commit to git
SET GIT_PARAMS=--git-dir=%GBKUP_LOCAL_MIRROR_HOME%\.git --work-tree=%GBKUP_LOCAL_MIRROR_HOME% 
SET BKUP_LOG_FILE=%TMP%\git-backup.log
SET TO_LOG=1^>^> %BKUP_LOG_FILE% 2^>^&1
echo ===========================BACKUP START=========================== %TO_LOG%
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
echo %mydate%_%mytime% %TO_LOG%
echo updating git index, committing, and then pushing to remote %TO_LOG%
REM Caution: The --ignore-errors directive tells git to continue even if it can't access a file.
git %GIT_PARAMS% add -Av --ignore-errors %TO_LOG%
git %GIT_PARAMS% commit -m "backup" %TO_LOG%
git %GIT_PARAMS% push -vv --progress origin master %TO_LOG%
echo ===========================BACKUP END=========================== %TO_LOG%

আমাদের কাছে-টেক্সট ফাইল বাদ দেওয়া আছে, যেখানে আমরা সমস্ত ফাইল উপেক্ষা করার জন্য রেখেছি:

অগ্রাহ্য-from.txt:

target/
logs/
AppData/
Downloads/
trash/
temp/
.idea/
.m2/
.IntelliJIdea14/
OLD/
Searches/
Videos/
NTUSER.DAT*
ntuser.dat*

আপনাকে যে কোনও রিমোট রেপোগুলিতে যেতে হবে এবং তাদের উপর 'গিট থ্রিম - ভাল' করতে হবে। ব্যাকআপ স্ক্রিপ্টটি সম্পাদন করে আপনি স্ক্রিপ্টটি পরীক্ষা করতে পারেন। সবকিছু কাজ করে ধরে নিচ্ছি, উইন্ডোজ শিডিউলারে যান এবং ভিবিএস ফাইলের প্রতি এক ঘন্টা ব্যাকআপ করুন। এর পরে, আপনার প্রতি ঘন্টা জন্য আপনার কম্পিউটারের গিট ইতিহাস থাকবে। এটি অত্যন্ত সুবিধাজনক - প্রতিটি ঘটনাক্রমে পাঠ্যের একটি বিভাগ মুছুন এবং এটি মিস করবেন? শুধু আপনার গিট সংগ্রহস্থল পরীক্ষা করুন।


কেবল কৌতূহলী - এটি নেটড্রাইভ বা এক্সপেনড্রাইভ দ্বারা অনুকরণ করা ধীর বা অ-মানক নেটওয়ার্ক ড্রাইভগুলির জন্যও কাজ করবে? আমি বেশিরভাগ ব্যাকআপ সফ্টওয়্যার এই নেটওয়ার্ক ড্রাইভগুলির সাথে ব্যর্থ দেখতে পাই। এছাড়াও জিনিসগুলি বেদনাদায়কভাবে ধীর হয়ে যায় এবং সময়ের বাইরে যাওয়ার দিকে ঝোঁক থাকে, যদি আমি ব্যাকআপের সমস্ত ফাইল তালিকাভুক্ত করতে এবং পৃথক ফাইলগুলি বের করতে চাই। গিট কি এই সমস্যাগুলি সমাধান করতে সক্ষম?
জাস্টামার্টিন

@ জাস্টামার্টিন আমি কখনও এটি নেটওয়ার্ক ড্রাইভে পরীক্ষা করে দেখিনি, তাই আমি বলতে পারি না। একবার আপনি গিট রেপোতে ফাইলগুলি পেয়ে গেলে গিটটি খুব দক্ষ।
ব্যবহারকারী 64141

4

ভাল এটি কোনও খারাপ ধারণা নয়, তবে আমি মনে করি যে দুটি লাল পতাকা উত্থাপন করতে হবে:

  • হার্ডডিস্ক ব্যর্থ হলে, আপনি যদি অন্য কোনও সার্ভার / ড্রাইভে আপনার প্রতিশ্রুতিবদ্ধ না রাখেন তবে আপনি সমস্ত কিছু হারাবেন। (ইভেন্ট যদি আপনি এটির জন্য কোনও পরিকল্পনা করেন তবে আমি উল্লেখ করতে পছন্দ করি))

... তবে তবুও এটি দুর্নীতি-সম্পর্কিত বিষয়গুলির জন্য ভাল ব্যাকআপ হতে পারে। অথবা আপনি যেমন বলেছিলেন, .git / ফোল্ডারটি অন্য কোথাও থাকলে।

  • এই ব্যাকআপটি সর্বদা আকারে বৃদ্ধি পাবে। কোনও ছাঁটাই বা ঘূর্ণন বা ডিফল্টরূপে কিছুই নেই।

... সুতরাং আপনাকে ট্যাগ যুক্ত করার জন্য আপনার ক্রোনজব্বকে বলতে হবে এবং তারপরে নিশ্চিত হয়ে নিন যে ট্যাগ নেই এমনটি পরিষ্কার হয়ে যাবে।


আমরা সম্ভবত একটি রিমোট সার্ভারে .git ডিরেক্টরিটি মাউন্ট করব, যদিও সংঘটিতটি rm -Rf /আমাদের কিছু সমস্যার কারণ হতে পারে। আমাদের বর্তমান ব্যাকআপ সিস্টেমটি 2 বছর বা 50 টি সংস্করণের জন্য স্টাফ রাখে (যেটি শেষ হয়) তাই আমাদের ব্যাকআপটি যেভাবেই অবিচ্ছিন্নভাবে বাড়ছে। তবে আমি ট্যাগ যুক্ত করার ধারণাটি পছন্দ করি, আমাদের "দৈনিক", "সাপ্তাহিক" ইত্যাদি ট্যাগ থাকতে পারে
স্মুড

বর্ধমান স্থানের প্রয়োজনীয়তার জন্য +1
হাফিচুক

@ সাম গিট সর্বদা বাড়ছে। আপনি এন বছরের চেয়ে পুরানো ইতিহাস ছাঁটাই করতে পারেন। আমি মনে করি আপনার বর্তমান সিস্টেমটি করছে।
আরডিএস

1
আকার বৃদ্ধির বিষয়ে, দয়া করে 'git gc' নিয়মিত করুন বা আপনি অন্য কোনও (কেন্দ্রীয়) সার্ভারে চাপ দেওয়ার আগে করুন। এটি ছাড়া গিট রেপো এটির চেয়ে বড় হতে পারে (অনেক বেশি)। আমার একবার 346 এমবি গিট রেপো ছিল যা 16 এমবিতে সঙ্কুচিত হতে পারে।
হেন্দি ইরওয়ান

3

আমি এটি একটি সম্পূর্ণ সিস্টেম দিয়ে চেষ্টা করে দেখিনি তবে আমি এটি আমার মাইএসকিউএল ব্যাকআপের জন্য ব্যবহার করছি (--স্কিপ-এক্সটেন্ডেড-সন্নিবেশকরণ বিকল্পের সাথে) এবং এটি আমার পক্ষে সত্যই কার্যকর হয়েছে।

আপনি বাইনারি ডেটা ফাইল (তাদের পুরো বিষয়বস্তু পরিবর্তন করতে পারে এবং পরিবর্তিত হতে পারে) নিয়ে সমস্যায় পড়তে চলেছেন এবং .gitফোল্ডারটি সত্যিই বড় হওয়ার ক্ষেত্রে আপনার সমস্যা হতে পারে । আমি কোনও .gitignoreফাইল সেট আপ করার জন্য এবং কেবলমাত্র আপনার প্রয়োজনীয় পাঠ্য ফাইলগুলি ব্যাক আপ করার পরামর্শ দিচ্ছি ।


আমি এটি মাইএসকিউএল ব্যাকআপের জন্যও ব্যবহার করছি - - এক্সটেন্ডেড-সন্নিবেশ = মিথ্যা। "Git gc" নিয়মিত বা কমিটের পরে ডান হয়ে নিশ্চিত হন।
হেন্ডি ইরাওয়ান


3

আমি একবার subversion উপর ভিত্তি করে একটি ব্যাকআপ সমাধান বিকাশ। যদিও এটি বেশ ভাল কাজ করেছে (এবং গিটটি আরও ভালভাবে কাজ করা উচিত), আমি মনে করি এখানে আরও ভাল সমাধান রয়েছে।

আমি বিবেচনা rsnapshot ভাল এক হতে - যদি না ভালো। হার্ড লিঙ্কটির ভাল ব্যবহার সহ, আমার কাছে দৈনিক, সাপ্তাহিক এবং মাসিক ব্যাকআপ সহ এক 300 বছর পর্যন্ত ফিরে আসা 300 গিগাবাইট ফাইলসভার (অর্ধ মিলিয়ন ফাইল সহ) রয়েছে। মোট ব্যবহৃত ডিস্ক স্থান হ'ল প্রতিটি ব্যাকআপের কেবলমাত্র একটি সম্পূর্ণ অনুলিপি + তবে হার্ডলিঙ্কগুলির জন্য ধন্যবাদ আমার প্রতিটি ব্যাকআপে একটি সম্পূর্ণ "লাইভ" ডিরেক্টরি কাঠামো রয়েছে। অন্য কথায়, ফাইলগুলি কেবল দৈনিক ০. (সর্বাধিক সাম্প্রতিক ব্যাকআপ) এর অধীনেই সরাসরি অ্যাক্সেসযোগ্য, তবে ডেইলি ১. (ইয়েস্টার্ডে) বা সাপ্তাহিক ২ (দুই সপ্তাহ আগে) ইত্যাদিতেও রয়েছে।

সাম্বার সাথে ব্যাকআপ ফোল্ডারটি পুনরায় ভাগ করে নেওয়ার ফলে, আমার ব্যবহারকারীগণ ব্যাকআপ থেকে ফাইলটিকে ব্যাকআপ সার্ভারে কেবল পয়েন্ট করেই টানতে সক্ষম হন।

আর একটি খুব ভাল বিকল্প হ'ল rdiff- ব্যাকআপ , তবে আমি যেমন এক্সপ্লোরারকে vern সারওয়ারনেম করে কেবল ফাইলগুলি সর্বদা অ্যাক্সেসযোগ্য রাখতে চাই, আমার জন্য আরএসএন্যাপশট একটি আরও ভাল সমাধান ছিল।


আরডিফ-ব্যাকআপের সর্বশেষ প্রকাশটি ২০০৯ সালের থেকে? এটি কি খুব ভালভাবে ডিজাইন করা এবং কোনও আপডেট করার দরকার নেই বা এটি কেবল একটি পরিত্যক্ত প্রকল্প?
ম্যাটিউজ কোনিস্কনি

আমি জানি না এটি মেইনডেইন হয়েছে কিনা, তবে এটি মূলত "সম্পন্ন" হয়েছে।
shodanshok

Savannah.nongnu.org/bugs/… দেখে দেখে মনে হয় যে 2015 এর শেষদিকে কিছু কার্যকলাপ ছিল তবে অনেক বাগ রিপোর্ট উপেক্ষা করা হয়। আমি মনে করি আমি এটি পরিত্যক্ত হিসাবে শ্রেণিবদ্ধ করব।
ম্যাটিউজ কোনিস্কনি

2

গিটের সাথে ব্যাকআপ নেওয়ার আমারও একই ধারণা ছিল, কারণ এটি সংস্করণযুক্ত ব্যাকআপ নিতে দেয়। তারপরে আমি rdiff- ব্যাকআপ দেখেছি , যা সেই কার্যকারিতা সরবরাহ করে (এবং আরও অনেক কিছু)। এটিতে একটি দুর্দান্ত ইউজার ইন্টারফেস রয়েছে (সিএলআই বিকল্পগুলি দেখুন)। এতে আমি বেশ খুশি। --remove-older-than 2Wবেশ কুল। এটি আপনাকে কেবল 2 সপ্তাহের বেশি পুরানো সংস্করণগুলি মুছতে দেয়। rdiff-backupকেবলমাত্র ফাইলের বিভিন্নতা সঞ্চয় করে।


2

আমি গিটে চূড়ান্তভাবে নতুন, তবে শাখাগুলি কি ডিফল্টরূপে স্থানীয় নয়, এবং অবশ্যই দূরবর্তী সংগ্রহস্থলগুলিতে স্পষ্টভাবে ধাক্কা দিতে হবে? এটি ছিল একটি অপ্রীতিকর এবং অপ্রত্যাশিত অবাক। সর্বোপরি, আমি কি চাই না যে আমার সমস্ত স্থানীয় রেপো সার্ভারে 'ব্যাক আপ' করা উচিত? গিট বই পড়া :

আপনার স্থানীয় শাখাগুলি আপনি যে রিমোটগুলিতে লিখেছেন সেগুলির সাথে স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয় না - আপনি যে শাখাগুলি ভাগ করতে চান তা স্পষ্টভাবে আপনাকে চাপ দিতে হবে। এইভাবে, আপনি ভাগ করতে চান না এমন কাজের জন্য আপনি ব্যক্তিগত শাখাগুলি ব্যবহার করতে পারেন এবং আপনি যে টপিক শাখায় সহযোগিতা করতে চান তা কেবল ধাক্কা দিতে পারেন।

আমার কাছে এর অর্থ হ'ল স্থানীয় স্থানীয় মেশিনে থাকা অন্যান্য নন-গিট ফাইলগুলির মতো those স্থানীয় শাখাগুলি নিয়মিতভাবে কিছু অ-গিট পদ্ধতিতে ব্যাক আপ না করা হলে হারিয়ে যাওয়ার ঝুঁকিতে রয়েছে। আমি যাইহোক এটি করি, তবে এটি আমার রেপোতে গিট 'সবকিছু ব্যাক আপ' সম্পর্কে আমার অনুমানগুলি ভেঙে দেয়। আমি এই সম্পর্কে স্পষ্টতা চাই!


1
রিমোটগুলি বাদ দিয়ে গিটের সম্পর্কে অনেক কিছুই স্থানীয়। সেটা ডিজাইনের মাধ্যমে by আপনি জিনিসগুলি রিমোটগুলিতে ঠেলাতে পারেন এবং বিশেষত যদি এই দৃশ্যের মতো ব্যাকআপের জন্য ব্যবহৃত হয়। শাখাগুলির জন্য, আবারও, হ্যাঁ, আপনি যদি তাদের কোনও রিমোটে যুক্ত করতে চান তবে আপনাকে সেগুলি স্পষ্টভাবে ধাক্কা দিতে হবে। বিকাশের জন্য, এটি দুর্দান্ত কারণ প্রায়শই আপনি কিছু পরীক্ষা করতে চান তবে সেই পরীক্ষা শাখাকে অনির্দিষ্টকালের জন্য সংরক্ষণ করার প্রয়োজন নেই। একবার আপনার কাছে যা যা প্রয়োজন তা পেলে আপনি সম্ভবত এটি কোনও দেব শাখায় মার্জ করে পরীক্ষা শাখায় ডিল করতে চলেছেন।
লোকালপিসিগুয়ে

1

আমি আমার ডি বাক্সগুলির জন্য এটি একটি ভাল পদ্ধতি বলে মনে করেছি। এটি তাদের এমন কিছু হতে পরিবর্তিত করে যা কেবলমাত্র একটি ডিপ্লোয়মেন্ট এন্ডপয়েন্টে ব্যাক আপ করা দরকার।

সমস্ত কনফিগারেশন এবং প্যাকেজ ইনস্টলেশন ম্যানিফাইস্টগুলি পুটপেটে সংরক্ষণ করা হয়, সহজে পুনর্নির্মাণ এবং কনফিগারেশন আপডেটের অনুমতি দেয়। পুতুল ডিরেক্টরি গিট সঙ্গে ব্যাক আপ করা হয়। প্রাথমিক স্থাপনা করতে কিকস্টার্ট ব্যবহার করা হয়।

সেই সময়ে প্যাকেজগুলি যেভাবে বিকাশ করা হচ্ছে তার জন্য আমি একটি কাস্টম YUM সংগ্রহস্থল রাখি। এটির অতিরিক্ত সুবিধা রয়েছে যে আমরা যে প্যাকেজগুলির সাথে কাজ করছি সেগুলি স্থানীয় সিস্টেমে কেবল অপ্রত্যাশিত বাইনারি হিসাবে রেখে দেওয়া হয় না - যদি তা হয় এবং ফাইলগুলি ওহ ভালভাবে ডুবে যায়। কেউ সঠিক পদ্ধতি অনুসরণ করেনি।


1

আপনি গিথুবটিতে বুপটি পরীক্ষা করতে চাইতে পারেন যা ব্যাকআপের জন্য গিট ব্যবহারের উদ্দেশ্যে তৈরি করা হয়েছিল।


পূর্ববর্তী উত্তর ইতিমধ্যে একই সরঞ্জাম (বুপ) দিকে নির্দেশ করে। serverfault.com/a/341213/303467 । এটির কোনও হাইলাইট?
জাভিয়ের

1

এটি এমন একটি পদ্ধতির ব্যবহার যা এটি বোঝায় sense

কিপকনফ এই কাজের জন্য আরএসসিএন এবং গিট ব্যবহার করে, জিনিসটি সহজ রাখার জন্য এটি এই সরঞ্জামগুলির উপর একটি মোড়ক।

ব্যাকআপ সার্ভারগুলিতে অ্যাক্সেসের জন্য এবং কনফিগারেশন ফাইলের কয়েকটি লাইনগুলিতে আপনার কেবলমাত্র ssh-key সহ একটি কেন্দ্রীয় সার্ভার দরকার। উদাহরণস্বরূপ, সমস্ত / ইত্যাদি / এবং ডেবিয়ান প্যাকেজ ইনস্টল করার জন্য এটি আমার নিজস্ব ফাইল:

[hosts]
192.168.1.10
192.168.1.11
192.168.1.12

[files]
/etc/*
/var/lib/dpkg/status

এটির সাথে আমার কাছে আরএসসিএনসি ব্যাকআপ এবং গিট কমিট রয়েছে।


0

আমার ব্যক্তিগত মতামত এটি মূলত সমস্ত পিছনে। আপনি ফাইলগুলিকে টেনে আনার পরিবর্তে ব্যাকআপ সমাধানে চাপ দিচ্ছেন।

সার্ভারের কনফিগারেশনটিকে প্রথমে কেন্দ্রীভূত করা এবং তারপরে পুতুলের মতো কিছু ব্যবহার করে এটি নীচে টানতে আরও ভাল।

এটি বলেছিল, এটি কার্যকর হতে পারে, আমি কেবল ভাবি না যে এটি ভাল হবে।

ব্যাক আপ্পক সন্ধান করার চেষ্টা করুন - এটি সেট আপ করা বেশ সহজ এবং খোলামেলা উজ্জ্বল।


0

এটি কিছুটা হলেও কাজ করবে, তবে দুটি ক্যাভেট।

  1. আপনি যখন প্রতিশ্রুতিবদ্ধ তখন ফাইল সংযোজনগুলি স্বয়ংক্রিয়ভাবে নেওয়া হবে না। কমিট করার আগে যুক্ত করতে নতুন স্টাফ খুঁজতে --porcelean ওম গিট স্ট্যাটাস ব্যবহার করুন।

  2. কেন .ssh এর জন্য দূরবর্তী মাউন্টের ঝামেলা? এটি ভঙ্গুর হতে হবে বিডি আপনি জানেন না যে এটি ব্যর্থ হয়েছে। সাধারণ ssh কী লগইন সহ সুদূর প্রান্তের জন্য একটি খালি সংগ্রহস্থল ব্যবহার করুন। যতক্ষণ ভাণ্ডার খালি থাকে এবং আপনি কেবলমাত্র একটি উত্স থেকে চাপছেন এটি কোনও মার্জ হওয়ার পরেও কাজ করার গ্যারান্টিযুক্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.