Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']

എല്ലാവർക്കും ഹലോ.
ഹബ്രെയെക്കുറിച്ചുള്ള സമീപകാല ലേഖനങ്ങൾ പ്രായോഗികമായി ഇറക്കുമതി പകരം വയ്ക്കൽ. ഭാഗം 1. ഓപ്ഷനുകൾ и സംഗീതം അധികനേരം പ്ലേ ചെയ്തില്ല... അല്ലെങ്കിൽ എങ്ങനെയാണ് എൽബ്രസ് ഒഎസ് ഒരിക്കലും സ്വതന്ത്രമാകാത്തത് എന്നെ നിസ്സംഗനാക്കിയില്ല. ബാക്കപ്പ് ടാസ്ക്കിന്റെ പശ്ചാത്തലത്തിൽ ഈ പ്രശ്നം പഠിക്കാൻ ഞാൻ തീരുമാനിച്ചു. മാത്രമല്ല, ഇൻ ഈ ലേഖനം വീം സോഫ്‌റ്റ്‌വെയർ ഉൽപ്പന്നങ്ങൾ പരാമർശിച്ചിരിക്കുന്നു, അതായത്, ഇറക്കുമതി പകരക്കാരന്റെ പശ്ചാത്തലത്തിൽ പ്രശ്‌നം പ്രത്യേകമായി പ്രസക്തമാകാം എന്നാണ്.

Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']
യഥാർത്ഥ ഇമേജ് ഉറവിടം

ഒന്നാമതായി, ഞാൻ Elbrus OS ഡൗൺലോഡ് ചെയ്യാൻ തീരുമാനിച്ചു, അല്ലെങ്കിൽ, x86_64 ആർക്കിടെക്ചറിനായി ലഭ്യമായ വിതരണം മാത്രം, അത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണുക, അതിൽ ലിനക്സിനായി Veeam ഏജന്റ് ഇൻസ്റ്റാൾ ചെയ്യാൻ ശ്രമിക്കുക. ഇതിൽ നിന്ന് എന്താണ് സംഭവിച്ചതെന്ന് നിങ്ങൾക്ക് അറിയണമെങ്കിൽ, ദയവായി പൂച്ചയെ കാണുക.

അതിനാൽ, ഒരു ചെറിയ വ്യതിചലനം, ആരെങ്കിലും അറിയില്ലെങ്കിൽ. "എൽബ്രസ്" അങ്ങനെയാണ് സിപിയു ഒരു പ്രത്യേക കമാൻഡ് സിസ്റ്റം ഉപയോഗിച്ച്. ഇതിന് പുറമേ, എൽബ്രസ് ഒഎസ് സോഫ്റ്റ്വെയറും ഉണ്ട്. കൂടാതെ - ഒരു സാധാരണ തെറ്റിദ്ധാരണയ്ക്ക് വിരുദ്ധമായി - എൽബ്രസ് ഒഎസ് പ്രവർത്തിക്കുന്നതിന്, എൽബ്രസ് പ്രോസസറിനെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു ഹാർഡ്‌വെയർ സിസ്റ്റം ആവശ്യമില്ല. x86 നായി "PDK "Elbrus" ഉണ്ട് - വാസ്തവത്തിൽ, ഇത് ഒരു ഇൻസ്റ്റാളേഷൻ ഡിസ്കിന്റെ രൂപത്തിൽ പൊതു ഡൊമെയ്നിൽ പ്രത്യക്ഷപ്പെട്ടു. വഴിയിൽ, "PDK - പ്ലാറ്റ്ഫോം ഡെവലപ്മെന്റ് കിറ്റ്, ഡവലപ്പർ കിറ്റ്" എന്ന അടിക്കുറിപ്പ് ഉണ്ട് - കൊള്ളാം, അതിനർത്ഥം അവിടെ ഒരു കംപൈലർ എങ്കിലും ഉണ്ടെന്നാണ്.

മറ്റൊരു ചെറിയ നിർബന്ധിത പിൻവാങ്ങൽ. MSVS, Baguette RTOS എന്നിവ പോലെയുള്ള ആഭ്യന്തര സോഫ്റ്റ്‌വെയറുകൾ ഞാൻ ഒരിക്കൽ കൈകാര്യം ചെയ്തിരുന്നു എന്നതാണ് വസ്തുത. MCST-യിൽ നിന്നുള്ള ഒരു പ്രോസസർ ഉൾപ്പെടെയുള്ള ആഭ്യന്തര ഘടകങ്ങളുമായി പ്രവർത്തിച്ച പരിചയം എനിക്കുണ്ടായിരുന്നു. അതിനാൽ, ഈ പ്രദേശത്ത് ഒരു പ്രത്യേക പ്രത്യേകതയുണ്ടെന്ന് എനിക്ക് പൂർണ്ണ ഉത്തരവാദിത്തത്തോടെ പറയാൻ കഴിയും, ലേഖനത്തിൽ അത് സ്പർശിക്കാതിരിക്കാൻ ഞാൻ ശ്രമിക്കും. എനിക്ക് ശരിക്കും ആഗ്രഹിക്കുമ്പോൾ, ഞാൻ ടാഗ് [TBD] ഇടും. അതിനാൽ ട്രോളുകളും നിന്ദ്യമായ വിലാപങ്ങളും ഇല്ലാതെ ചെയ്യാൻ ഞങ്ങൾ ശ്രമിക്കും. അവസാനം, റഷ്യൻ പ്രതിരോധ വ്യവസായവും സർക്കാർ ഏജൻസികളും മനസ്സിലാക്കേണ്ടതുണ്ട്. വലിയ രാജ്യം - ചെറിയ ബജറ്റ്.. [TBD].

പൂജ്യം ഘട്ടം - ഡൗൺലോഡ്. എൽബ്രസ് ഒഎസ് ലഭ്യമായി എന്ന വാർത്ത അനുരണനത്തിന് കാരണമായതിനാൽ വിതരണ സെർവർ തകരാറിലായി എന്നത് ശ്രദ്ധേയമാണ്. [TBD] Yandex-നും അത് അവിടേക്ക് മാറ്റാൻ ആലോചിച്ച എഞ്ചിനീയർക്കും നന്ദി. അതിനാൽ ഡൗൺലോഡ് വേഗത മികച്ചതാണ്.

ആദ്യ ഘട്ടം - ഇൻസ്റ്റലേഷൻ. സൗജന്യ ഉപയോഗത്തിന് ലഭ്യമായ ആദ്യത്തെ ഹൈപ്പർവൈസറിൽ ഞാൻ ഇത് ഇൻസ്റ്റാൾ ചെയ്തു. ഞാൻ രണ്ട് കോറുകൾ അനുവദിച്ചു, രണ്ട് ഗിഗ് റാം, വീഡിയോയ്‌ക്കായി 32 എംബി (ഒരു ഗ്രാഫിക്കൽ ഇന്റർഫേസ് ഉണ്ടാകും, ഞാൻ കരുതി). ഡിസ്ക് സാധാരണ പോലെയാണ് - 32 ജിബി.
ഞാൻ ഇൻസ്റ്റലേഷൻ ആരംഭിച്ചു. ഞാൻ ഇൻസ്റ്റാളേഷൻ നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ചിട്ടില്ല, അതിനാൽ എനിക്ക് അതിൽ അഭിപ്രായമിടാൻ കഴിയില്ല. TUI ഇൻസ്റ്റലേഷൻ ഇന്റർഫേസ് വളരെ ചുരുങ്ങിയതാണ്.

Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']
ശരി, കൊള്ളാം, നമുക്ക് ഒരു മൗസ് ഇല്ലാതെ ചെയ്യാൻ കഴിയും.

രണ്ടാമത്തെ ശ്രമത്തിൽ ഞാൻ അടുത്ത വിൻഡോ മാനേജ് ചെയ്തു. ഡിസ്കിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഡിഫോൾട്ട് ഡിവൈസ് sr0 [TBD] എന്തുകൊണ്ട് തിരഞ്ഞെടുക്കരുത്?
CD-ROM ഉറവിടം തിരഞ്ഞെടുത്ത് മുന്നോട്ട് പോകുക.

Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']

സമയ മേഖല തിരഞ്ഞെടുക്കുമ്പോൾ, സിസ്റ്റം init ബൂട്ട് പ്രോസസ്സ് ഉപയോഗിക്കുന്നുണ്ടെന്ന് എനിക്ക് പെട്ടെന്ന് മനസ്സിലായി, ഞാൻ TTY0-ൽ നിന്നാണ് പ്രവർത്തിക്കുന്നത്.

Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']

ശരി, അപ്പോൾ നമുക്ക് "എൽബ്രസ്" ഒരു കമ്മ്യൂണിറ്റിയായി തരംതിരിക്കാം പഴയ വിശ്വാസികൾ[TBD]. തത്വത്തിൽ, ഇത് നല്ലതാണ്: എല്ലാം സ്ക്രിപ്റ്റ് ചെയ്തതിനാൽ, ഡൗൺലോഡ് പ്രക്രിയ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണുന്നതിന് നിങ്ങൾ സോഴ്സ് കോഡ് ആവശ്യപ്പെടേണ്ടതില്ല.

ബാക്കിയുള്ളത് മിക്കവാറും അപ്രധാനമാണ്: ഞങ്ങൾ എല്ലാം ഇട്ടു സമ്മതിക്കുന്നു. വഴിയിൽ, കേർണൽ 3.14.79-13.84 ഉപയോഗിച്ചതായി ഞങ്ങൾ കണ്ടെത്തി. ഹോ, ഡെബിയൻ 7 ന് 3.2 [TBD] ഉണ്ടായിരുന്നു.

അടുത്തതായി, ഡിഫോൾട്ട് ഡിസ്ക് പാർട്ടീഷനിംഗ് തിരഞ്ഞെടുക്കുക കൂടാതെ... ഞങ്ങൾ ഒരു മുന്നറിയിപ്പ് കാണുന്നു:

Elbrus OS-ലെ Veeam-ൽ നിന്നുള്ള Linux ബാക്കപ്പ്. പകരക്കാരനെ ഇറക്കുമതി ചെയ്യുക ['?' | '.' | '!']

ഹോ, എങ്ങനെയോ ഓട്ടോമാറ്റിക് പാർട്ടീഷനിംഗ് ഒരു 32 ഗിഗ് ഡിസ്കുമായി പൊരുത്തപ്പെട്ടില്ല. ഞാൻ ഡിസ്ക് മാറ്റിയില്ല; "ഓൾ-ഇൻ-വൺ" ശൈലിയിൽ മാനുവൽ ഡിസ്ക് പാർട്ടീഷനിംഗ് ഉപയോഗിച്ച് ഞാൻ അന്വേഷണം പൂർത്തിയാക്കി. എനിക്ക് ext3 ഇൻസ്റ്റാൾ ചെയ്യേണ്ടിവന്നു, കാരണം /boot ext4-ൽ ഉണ്ടാകാൻ കഴിയില്ല.
ഒരു കുഴപ്പവുമില്ലാതെ സംവിധാനം നിലവിൽ വന്നു.

രണ്ടാം ഘട്ടം - ഇതരമാർഗ്ഗങ്ങൾക്കായി തിരയുക.
രണ്ടാമത്തെ ഡിസ്കിലെ ഉള്ളടക്കങ്ങൾ പരിശോധിച്ച ശേഷം, ഇത് അധികമുള്ള ഒരു ശേഖരമാണെന്ന് ഞാൻ മനസ്സിലാക്കി. പാക്കേജുകളിൽ. കൂടാതെ /etc/apt/sources.list നോക്കിയപ്പോൾ, അത് /mnt/cdrom-ൽ മൗണ്ട് ചെയ്യേണ്ടതുണ്ടെന്ന് ഞാൻ മനസ്സിലാക്കി. എന്നാൽ ഞാൻ /etc/os-release കണ്ടെത്തിയില്ല. എന്നാൽ ഉള്ളടക്കം 3.0-rc36 ഉള്ള /etc/mcst-version ഉണ്ട്. 3.0 ഒരുപക്ഷേ പതിപ്പായിരിക്കാം - ഇത് അനുയോജ്യമാണെന്ന് തോന്നുന്നു, പക്ഷേ rc36? പൊതുവേ, മൂന്നാം കക്ഷി സോഫ്‌റ്റ്‌വെയറിന് ഈ വിതരണത്തെ ക്ലാസിക്കൽ രീതിയിൽ തിരിച്ചറിയാൻ കഴിയില്ല.

റൂട്ട് പാർട്ടീഷനിൽ, /mcst ഡയറക്‌ടറി എന്റെ ശ്രദ്ധ പിടിച്ചുപറ്റുന്നു, അവിടെ, മുങ്ങുന്ന ഹൃദയത്തോടെ, ഞാൻ /mcst/backup കണ്ടെത്തി. അതായത്, ഒരു ബാക്കപ്പ് ടൂൾ ഉണ്ട്, അത് സിസ്റ്റത്തിൽ നിർമ്മിച്ചിരിക്കുന്നു! “കൊള്ളാം,” ഞാൻ വിചാരിച്ചു, “ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നോക്കാം!”

ഫയൽ പകർത്തൽ നൽകുന്ന ഒരു 4Kb ബാഷ് സ്ക്രിപ്റ്റ് /mcst/bin/backup ഉണ്ടെന്ന് തെളിഞ്ഞു. സ്ഥിരസ്ഥിതിയായി - /mcst/backup ഡയറക്ടറിയിലേക്ക്. സോഴ്സ് കോഡിൽ ഞാൻ rsync കമാൻഡ് കാണുമെന്ന് പ്രതീക്ഷിച്ചിരുന്നു, പക്ഷേ അത് ഡിഫോൾട്ട് കോൺഫിഗറേഷനിൽ ഇല്ല. സ്ക്രിപ്റ്റ് ഫയലുകൾ പകർത്തുന്നു. കമാൻഡ് ഇതുപോലെ കാണപ്പെടുന്നു:

cp -rpdx <file backup> <file>

മുഴുവൻ ഫയലും /mcst/bin/backup ഇവിടെയുണ്ട്പൂർണ്ണമായി മനസ്സിലാക്കാൻ ഈ സ്ക്രിപ്റ്റ് മാത്രം പോരാ എന്ന് ഞാൻ ഉടൻ തന്നെ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു. ഫംഗ്‌ഷനുകളുടെ ലൈബ്രറി പോലെയുള്ള /mcst/bin/source-ൽ നിന്ന് ഇത് ഫംഗ്‌ഷനുകൾ വലിക്കുന്നു. ഞാൻ അത് ഉൾപ്പെടുത്തിയിട്ടില്ല (44KB).

#!/bin/bash

unalias -a

set +vx

source $(dirname $0)/source
[[ $? != 0 ]] && exit 1

OPTIONS="hvcdrRil:L:"

usage()
{
	echo "Usage: $PROG_NAME [-$OPTIONS] [backup]"
	echo "    h            - this help"
	echo "    v vv vvv     - verbose, very verbose, extremly verbose"
	echo "    c            - create backup"
	echo "    d            - diffs backup and system"
	echo "    r            - recovery system"
	echo "    R            - remove backup"
	echo "    i            - prompt before backup removing"
	echo "    l list       - additional backup files list"
	echo "    L list       - global backup files list"
	echo "    backup       - backup directory, default /mcst/backup/backup"
}

init_prog()
{
	typeset flg=0

	while getopts $OPTIONS opt
	do
		case $opt in
		h ) usage; exit 0;;
		v ) (( verbose = verbose + 1 )); set_verbose;;
		c ) flg=1; c_flg=1;;
		d ) flg=1; d_flg=1;;
		r ) flg=1; r_flg=1;;
		R ) flg=1; R_flg=1;;
		i ) i_flg=1;;
		l ) l_flg=1; list_arg="$list_arg $OPTARG";;
		L ) L_flg=1; LIST_arg="$LIST_arg $OPTARG";;
		* ) usage "Invalid option"; exit 1;;
		esac
	done

	set_verbose

	check_su

	init_variables

	shift $((OPTIND-1))

	if (( $# > 1 ))
	then
		echo_fatal "invalid arguments number, exp 0|1, act $#"
		exit 1
	fi

	[[ $# = 1 ]] && BACKUP=$1

	echo "Backup directory is $BACKUP"

	if [[ $L_flg = 1 ]]
	then
		backup_list="$LIST_arg"
	elif [[ $c_flg != 1 && $R_flg != 1 ]]
	then
		get_output_cmd "cat $BACKUP/$BACKUP_LIST_NAME"
		backup_list="$output_cmd"
	else
		get_output_cmd "get_backup_list"
		backup_list="$output_cmd"
	fi

	if [[ $l_flg = 1 ]]
	then
		backup_list="$backup_list $list_arg"
	fi

	if [[ $flg = 0 ]]
	then
		if [[ -d $BACKUP ]]
		then
			ls -laR $BACKUP
		else
			echo_info "Cannot access $BACKUP"	
		fi
		echo "backup_list=$backup_list"
		exit 0
	fi

###	echo "Backup list: $backup_list"
}

create_file()
{
	typeset f=$1 fr=$2
	typeset fb

	[[ -z $fr ]] && fr=$f

	fb=${f#/}

	fb=$BACKUP/$fb

	xcmd="rm -rf $fb"
	set_cmd "$xcmd"
	run_cmd

	xcmd="mkdir -p $fb"
	set_cmd "$xcmd"
	run_cmd

	if [[ -a $fr ]]
	then
		xcmd="cp -rpdx $fr $fb/file"
		set_cmd "$xcmd"
		run_cmd

		xcmd="touch $fb/create"
		set_cmd "$xcmd"
		run_cmd
	else
		xcmd="touch $fb/delete"
		set_cmd "$xcmd"
		run_cmd
	fi
}

diff_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ -f $fb/delete ]]
	then
		echo_info "$f absent"
	elif [[ -f $fb/create ]]
	then
#		echo "state: create $f"

		if [[ ! -a $f ]]
		then
			echo_info "cannot access $f"
		else
			xcmd="diff -r $f $fb/file"
			echo "$xcmd"
			set_cmd "$xcmd" "" "0 1 2"
			run_cmd
		fi
	else
		echo_fatal "wrong $f backup"
		exit 1
	fi
}

recovery_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ ! -a $fb ]]
	then
		echo_fatal "cannot access $fb"
		exit 1
	fi

	xcmd="rm -rf $f"
	set_cmd "$xcmd"
	run_cmd

	if [[ -f $fb/delete ]]
	then
		:
	elif [[ -f $fb/create ]]
	then
		xcmd="cp -rpdx $fb/file $f"
		set_cmd "$xcmd"
		run_cmd
	else
		echo_fatal "wrong $fb backup"
		exit 1
	fi
}

remove_backup()
{
	echo "Remove backup"

	if [[ ! -d $BACKUP ]]
	then
		echo_info "Cannot access $BACKUP"
		return
	fi

	if [[ ! -f $BACKUP/$BACKUP_LIST_NAME ]]
	then
		echo_fatal "$BACKUP_LIST_NAME absent, remove backup manually"
		exit 0
	fi

	answer=
	if [[ $i_flg = 1 ]]
	then
		echo -n "Remove $BACKUP directory (yes/...)?"
		read answer
	else
		answer=yes
	fi
	if [[ $answer = yes ]]
	then
		xcmd="rm -rf $BACKUP"
		set_cmd "$xcmd"
		run_cmd
	fi
}

recovery_backup()
{
	echo "Recovery system from $BACKUP" 

	for f in $backup_list
	do
		get_output_cmd "get_mount_point $f"
		mnt=$output_cmd
		get_output_cmd "is_ro_mounted $mnt"
		mnt=$output_cmd
		if [[ ! -z $mnt ]]
		then
			remount_rw_fs $mnt
		fi 
		recovery_file $f
		if [[ ! -z $mnt ]]
		then
			remount_ro_fs $mnt
		fi 
	done

	echo "The system is ready, reboot the system manually" 
}

create_backup()
{
		echo "Create backup"

		xcmd="mkdir -pm0777 $BACKUP"
		set_cmd "$xcmd"
		run_cmd

		for v in $backup_list
		do
			f=${v%%:*}
			backup_list2="$backup_list2 $f"
			fr=${v#*:}
			create_file $f $fr
		done
		echo "$backup_list2" >$BACKUP/$BACKUP_LIST_NAME
}

diff_backup()
{
	echo "Diffs system and backup" 

	if [[ ! -d $BACKUP ]]
	then
		echo_fatal "cannot access $BACKUP"
		exit 1
	fi

	for f in $backup_list
	do
		diff_file $f
	done
}

main()
{
	typeset f mnt mnt_list answer

	if [[ $R_flg = 1 ]]
	then
		remove_backup
	fi

	if [[ $r_flg = 1 ]]
	then
		recovery_backup
	fi

	if [[ $c_flg = 1 ]]
	then
		create_backup
	fi

	if [[ $d_flg = 1 ]]
	then
		diff_backup
	fi
}

init_prog "$@"

main

exit 0

എന്നിരുന്നാലും, എനിക്ക് എന്തെങ്കിലും മനസ്സിലായില്ലേ? അഭിപ്രായങ്ങളിൽ ആർക്കെങ്കിലും വിശദീകരിക്കാനായേക്കാം: ഈ സ്ക്രിപ്റ്റ് എങ്ങനെയാണ് സുരക്ഷിതവും വിശ്വസനീയവുമായ ഡാറ്റ ബാക്കപ്പ് ഉറപ്പാക്കുന്നത്? [TBD]

rsync, ആഡ്-ഓണിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ശേഖരങ്ങൾ. പതിപ്പ് 3.1.3. rsync ഉപയോഗിക്കുന്നത് ഇപ്പോഴും /mcst/bin/backup അപ്ലിക്കേഷന് ഒരു മികച്ച ബദലാണെന്ന് ഞാൻ കരുതുന്നു.

അടുത്തതായി, ഒരു പുതിയത് ഇടാൻ ഞാൻ തീരുമാനിച്ചു ലിനക്സിനുള്ള വീം ഏജന്റ്. ആരെങ്കിലും ചോദിക്കും: "വീമിനും ഇറക്കുമതി പകരത്തിനും ഇതുമായി എന്ത് ബന്ധമുണ്ട്?" അതെ, ഇത് രജിസ്റ്ററിൽ ഇല്ല, പക്ഷേ ഇത് FSTEC സാക്ഷ്യപ്പെടുത്തിയതാണ്, അതിനർത്ഥം ഇതരമാർഗ്ഗങ്ങളുടെ അഭാവത്തിൽ ഇത് ഉപയോഗിക്കാമെന്നാണ്. എന്നതിൽ നിന്നുള്ള ബദലുകൾക്കായി പതിനഞ്ച് മിനിറ്റ് ചെലവഴിക്കുന്നു രജിസ്ട്രി, "ബാക്കപ്പ്" എന്ന വാക്കിനുള്ള 3 ലിങ്കുകൾ കണ്ടെത്താൻ എനിക്ക് കഴിഞ്ഞു ("റിസർവ്" എന്ന വാക്കിനുള്ള എന്റെ ചോദ്യവുമായി ബന്ധമില്ല). ഈ പ്രോഗ്രാമുകളുടെ ആഴത്തിലുള്ള വിശകലനം ഞാൻ നടത്തിയിട്ടില്ല, അതിനാൽ Linux പ്രവർത്തിക്കുന്ന മെഷീനുകൾ ബാക്കപ്പ് ചെയ്യുന്നതിന് അവ എത്രത്തോളം അനുയോജ്യമാണെന്ന് ഞാൻ വിലയിരുത്താൻ ശ്രമിക്കില്ല. ആർക്കെങ്കിലും അത് ആവശ്യമുണ്ടെങ്കിൽ അത് സ്വന്തം നിഗമനത്തിലെത്തുകയും അഭിപ്രായങ്ങളിൽ പങ്കിടുകയും ചെയ്യും.

ഘട്ടം മൂന്ന് — Linux-നുള്ള Veeam ഏജന്റിന്റെ ഇൻസ്റ്റാളേഷൻ.
അതിനാൽ, ലിനക്സിനുള്ള വീം ഏജന്റിൽ രണ്ട് പാക്കേജുകൾ അടങ്ങിയിരിക്കുന്നു: വീംസ്‌നാപ്പ് കേർണൽ മൊഡ്യൂൾ (വഴി, ഉറവിടം ഇവിടെ) കൂടാതെ വീം പാക്കേജിന്റെ രൂപത്തിലുള്ള കുത്തക ഉപയോക്തൃ-സ്പേസ് കോഡ്.

കേർണൽ മൊഡ്യൂൾ ഇൻസ്റ്റോൾ ചെയ്യുന്നതിൽ ഒരു ചെറിയ പ്രശ്നം ഉണ്ടായിരുന്നു - കാണാതായ dkms പാക്കേജ്. ഉറവിടത്തിൽ നിന്ന് കേർണൽ മൊഡ്യൂളുകൾ നിർമ്മിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു സേവനമാണിത്. ചട്ടം പോലെ, ഇത് എല്ലാ ഡെബ് ഡിസ്ട്രിബ്യൂഷനുകളിലും ലഭ്യമാണ്. എനിക്ക് ഇത് ഒരു മൂന്നാം കക്ഷി ഡെബ് റിപ്പോസിറ്ററിയിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യേണ്ടിവന്നു. എന്നെ സന്തോഷിപ്പിച്ച ഒരു കാര്യം, പാക്കേജ് വാസ്തുവിദ്യയെ ആശ്രയിക്കുന്നില്ല, അതിനാൽ ഇത് നാട്ടിലെ പോലെ യോജിക്കുന്നു. എന്തുകൊണ്ടാണ് ഇത് ലഭ്യമായ പാക്കേജുകളുടെ പട്ടികയിൽ ഉൾപ്പെടുത്താത്തത്, അല്ലെങ്കിൽ [TBD] വികസിപ്പിച്ചില്ല? ഒരുപക്ഷേ ആരും MCST ഇതര കേർണൽ മൊഡ്യൂളുകൾ നിർമ്മിക്കുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യരുതെന്ന് അനുമാനിക്കാം. ഇവിടെ ശരിക്കും ഒരു പൊരുത്തക്കേടുണ്ട് - ലിനക്സ്-ഹെഡറുകൾ ഉള്ളതിനാൽ. അതായത്, മൊഡ്യൂൾ, ആവശ്യമെങ്കിൽ, കൈകൊണ്ട് കൂട്ടിച്ചേർക്കുകയും മെഷീൻ ആരംഭിക്കുമ്പോൾ ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് സമാരംഭിക്കുകയും ചെയ്യാം. MCST [TBD]-ൽ നിന്ന് നിങ്ങൾ പതിവ് അപ്‌ഡേറ്റുകൾ പ്രതീക്ഷിക്കേണ്ടതില്ലെന്ന് ഞാൻ കരുതുന്നു.

“ശരി, മൊഡ്യൂൾ ഇൻസ്റ്റാൾ ചെയ്തു - ഏറ്റവും ബുദ്ധിമുട്ടുള്ള ഭാഗം കഴിഞ്ഞു,” ഞാൻ വിചാരിച്ചു... deb റിപ്പോസിറ്ററിക്കുള്ള വീം പാക്കേജ് amd64 പ്ലാറ്റ്‌ഫോമിനുള്ളതാണ്, കൂടാതെ Elbrus OS-ന് x86_64 [TBD] പ്ലാറ്റ്‌ഫോം ഉണ്ട്. വ്യത്യാസം, തീർച്ചയായും, പേരിൽ മാത്രമാണ്, എന്നാൽ ഈ വ്യത്യാസം മൂന്നാം കക്ഷി ഡെബ് റിപ്പോസിറ്ററികളിൽ നിന്നുള്ള മിക്കവാറും എല്ലാ പാക്കേജുകളും എൽബ്രസ് ഒഎസുമായി പൊരുത്തപ്പെടുന്നില്ല. ഈ ശല്യപ്പെടുത്തുന്ന തെറ്റിദ്ധാരണ ലളിതമായി ഇല്ലാതാക്കാൻ കഴിയും: പാക്കേജ് ഡിസ്അസംബ്ലിംഗ് ചെയ്യുക, വാസ്തുവിദ്യയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശരിയാക്കി വീണ്ടും ഒരുമിച്ച് ചേർക്കുക. ഇത് എങ്ങനെ ചെയ്യാം ഗൂഗിൾ ചെയ്തു തൽക്ഷണം.

mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb

മറ്റൊരു പ്രശ്നം ആശ്രിതത്വമാണ്. ആവശ്യമായ ഫയലുകൾ ഉണ്ടെന്ന് തോന്നുന്നു, പക്ഷേ പാക്കേജുകൾ ഇല്ല. പാക്കേജുകളുടെ പേരുകൾ അവയുടെ "ഇറക്കുമതി ചെയ്ത അനലോഗുകളിൽ" നിന്ന് വ്യത്യസ്തമാണെന്നായിരുന്നു ധാരണ. ഒരുപക്ഷേ ലൈബ്രറികൾ വ്യത്യസ്തമായി പാക്കേജുചെയ്തിരിക്കാം. ഞാൻ വളരെയധികം വിശദാംശങ്ങളിലേക്ക് പോയില്ല, മിക്കവാറും എല്ലാ ഡിപൻഡൻസികളും നീക്കം ചെയ്തു, ഇൻസ്റ്റാളേഷൻ മുന്നോട്ട് പോയി.

തുടർന്ന് സേവന ആരംഭ കോഡിൽ പ്രശ്നങ്ങൾ ഉയർന്നു. സ്ക്രിപ്റ്റ് /lib/init/vars.sh കാണുന്നില്ല. ചില കാരണങ്ങളാൽ, എൽബ്രസ് ഇത് കൂടാതെ കൈകാര്യം ചെയ്യുന്നു, അതിനാൽ ഞങ്ങൾ അതും നീക്കം ചെയ്യും. അടുത്തതായി, ഞങ്ങൾക്ക് സന്ദേശ ഔട്ട്‌പുട്ട് ഫംഗ്‌ഷൻ മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്: log_daemon_msg, log_end_msg ഫംഗ്‌ഷനുകൾ കാണുന്നില്ല. /lib/lsb/init-functions ഫയലിൽ ചുറ്റിക്കറങ്ങിയ ശേഷം, ഞാൻ log_success_msg ഫംഗ്‌ഷൻ കണ്ടെത്തി - ഇത് പരീക്ഷണങ്ങൾക്ക് ഞങ്ങൾക്ക് നല്ലതാണ്. വഴിയിൽ, /lib/lsb/init-functions ഫയലിൽ "# സോഴ്‌സ് SuSE's rc functions" എന്ന വരി [TBD] ഫയലിന്റെ തുടക്കത്തിലാണ്.

ഒരു ഫയൽ ഉപയോഗിച്ച് പാക്കേജിന്റെ അത്തരം പരുക്കൻ പ്രോസസ്സിംഗിന് ശേഷം, NFS ഷെയറിലെ മുഴുവൻ മെഷീൻ ബാക്കപ്പും വിജയകരമായി സമാരംഭിച്ചു. ബാക്കപ്പ് മൗണ്ടും വിജയിച്ചു. അതിനാൽ, എൽബ്രസ് പി‌ഡി‌കെ ഉപയോഗിച്ച് ഒരു മെഷീൻ ബാക്കപ്പ് ചെയ്യുന്നതിന്, ഒരു ബാധ്യതയും കൂടാതെ “അങ്ങനെ തന്നെ” ഡൗൺലോഡ് ചെയ്യുന്നതിന്, ലിനക്സിനുള്ള വീം ഏജന്റ് തീർച്ചയായും അനുയോജ്യമാണെന്ന് ഞാൻ വിശ്വസിക്കുന്നു. ഒരു ഫയൽ ഉപയോഗിച്ച് എല്ലാ പരിഷ്ക്കരണങ്ങൾക്കും ശേഷവും.

തീർച്ചയായും, Elbrus OS വിതരണ കിറ്റ് ഔപചാരികമായി പിന്തുണയ്ക്കുന്നില്ല, കാരണം ഇത് പിന്തുണയ്ക്കുന്നവയുടെ പട്ടികയിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല. കൂടാതെ, ലിനക്സിനായുള്ള വീം ഏജന്റിനെ QA വകുപ്പ് പരീക്ഷിച്ചിട്ടില്ല, അതിനാൽ അവ. പിന്തുണയില്ല (കുറഞ്ഞത് ലേഖനം പ്രസിദ്ധീകരിക്കുന്ന സമയത്തെങ്കിലും).

334 ജൂൺ 29.06.2017 ലെ ഓർഡർ നമ്പർ XNUMX നടപ്പിലാക്കാൻ ശ്രമിക്കുന്നവർക്ക് ലേഖനം ഉപയോഗപ്രദമാകുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. എന്റേത് നിനക്ക്... [TBD].

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക