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