Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']

Lumela.
Lingoliloeng tsa morao-rao tse mabapi le Habré Kenyelletso ea kantle ho naha ka ts'ebetso. Karolo ea 1. Likhetho и 'Mino ha oa ka oa bapala nako e telele ... kapa hore na Elbrus OS ha e so ka e lokoloha joang ha ea ka ea ntlohela ke sa tsotelle. Ke nkile qeto ea ho ithuta taba ena molemong oa mosebetsi oa ho boloka. Ho feta moo, ka sehlooho sena Ho boletsoe lihlahisoa tsa Veeam Software, e leng se bolelang hore taba ena e ka ba ea bohlokoa ka ho khetheha molemong oa phetisetso ea kantle ho naha.

Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']
mohloli oa setšoantšo sa mantlha

Pele ho tsohle, ke ile ka etsa qeto ea ho khoasolla Elbrus OS, kapa ho e-na le hoo, feela kabo e fumanehang bakeng sa meralo ea x86_64, bona kamoo e sebetsang kateng, 'me u leke ho kenya Veeam Agent bakeng sa Linux ho eona. Haeba u batla ho tseba se tsoileng ho sena, ka kopo bona katse.

Kahoo, ho kheloha hanyenyane, haeba motho a sa tsebe. "Elbrus" e joalo cpu ka sistimi e ikhethileng ea litaelo. Ho phaella ho eona, ho na le software ea Elbrus OS. 'Me - ho fapana le tumelo e tloaelehileng - ho sebelisa Elbrus OS, ha ho hlokahale ho ba le tsamaiso ea hardware e thehiloeng ho processor ea Elbrus. Ho na le "PDK "Elbrus" bakeng sa x86" - ha e le hantle, e hlahile sebakeng sa sechaba ka mokhoa oa disk ea ho kenya. Ka tsela, ho na le mongolo o botlaaseng ba leqephe "PDK - sethala sa nts'etsopele ea sethala, lisebelisoa tsa nts'etsopele" - e ntle, ho bolela hore bonyane ho na le moqapi moo.

E 'ngoe e nyenyane e qobelloang ho khutlela morao. 'Nete ke hore ke kile ka sebetsana le software ea lapeng, e kang MSVS le Baguette RTOS. Ke bile le boiphihlelo ba ho sebetsa le likarolo tsa lapeng, ho kenyeletsoa processor e tsoang ho MCST. Ka hona, nka bua ka boikarabelo bo feletseng hore ho na le ho khetheha ho itseng sebakeng sena 'me ke tla leka ho se ama ho eona sehloohong sena. Ha ke hlile ke batla, ke tla beha tag [TBD]. Kahoo re tla leka ho etsa ntle le ho thothomela le ho bokolla banal. Qetellong, indasteri ea tšireletso ea Russia le mekhatlo ea mmuso e hloka ho utloisisoa. Naha e kholo - budget e nyane.. [TBD].

Sethala sa Zero - jarolla. Hoa hlokomeleha hore litaba tsa hore Elbrus OS e se e fumaneha li ile tsa baka moferefere, hoo seva sa kabo se ileng sa theoha. [TBD] Ke leboha Yandex le moenjiniere ea ileng a nahana ho e fallisetsa moo. Kahoo lebelo la ho jarolla le lokile.

Mohato oa pele - ho kenya. Ke e kentse ho hypervisor ea pele e neng e fumaneha bakeng sa tšebeliso ea mahala. Ke fane ka li-cores tse peli, li-gigs tse 'maloa tsa RAM, 32 MB bakeng sa video (ho tla ba le sebopeho sa litšoantšo, ke ne ke nahana). Disk e joalo ka tloaelo - 32 GB.
Ke ile ka qala ho kenya. Ha kea sebelisa litaelo tsa ho kenya, kahoo ha ke khone ho fana ka maikutlo ho eona. Sehokelo sa ho kenya TUI se fokola haholo.

Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']
Ho lokile, re ka etsa ntle le toeba.

Ke ile ka laola fensetere e latelang tekong ea bobeli. Hobaneng u sa khethe sesebelisoa sa kamehla sr0 [TBD] ha u kenya ho tsoa ho disk?
Khetha mohloli oa CD-ROM ebe u tsoela pele.

Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']

Ha ke ntse ke khetha sebaka sa nako, ka tšohanyetso ke ile ka hlokomela hore sistimi e sebelisa ts'ebetso ea init boot, mme ke sebetsa ho tloha TTY0.

Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']

Ho lokile, joale ha re aroleng "Elbrus" joalo ka sechaba Balumeli ba Khale[TBD]. Ha e le hantle, sena se molemo: ha ho hlokahale hore u botse khoutu ea mohloli ho bona hore na mokhoa oa ho jarolla o sebetsa joang, kaha ntho e 'ngoe le e' ngoe e ngotsoe.

Tse ling kaofela li batla li se tsa bohlokoa: re beha ntho e 'ngoe le e' ngoe 'me re lumellana. Tseleng, re fumana hore kernel e sebelisoa 3.14.79-13.84. Hmm, Debian 7 e ne e na le 3.2 [TBD].

Ka mor'a moo, khetha "disk partitioning" ea kamehla le ... Re bona temoso:

Linux Backup ho tloha Veeam ho Elbrus OS. Kenyelletso ea kantle ho naha ['?' | '.' | '!']

Hmm, ka tsela e itseng karohano ea othomathiki ha ea ka ea sebetsana hantle le 32 gig disk. Ha kea fetola disk; Ke qetile kopo ka ho arola disk ka mokhoa oa "all-in-one". Ke ile ka tlameha ho kenya ext3, kaha / boot e ne e ke ke ea ba ho ext4.
Tsamaiso e ile ea hlaha ntle le ketsahalo.

Mohato oa bobeli - batla mekhoa e meng.
Ka mor'a ho hlahloba litaba tsa disk ea bobeli, ke ile ka hlokomela hore ena ke sebaka sa polokelo se nang le tlatsetso. ka liphutheloana. 'Me ha ke sheba /etc/apt/sources.list, ke ile ka hlokomela hore e hloka ho kenngoa ho /mnt/cdrom. Empa ha kea fumana /etc/os-release. Empa ho na le /etc/mcst-version e nang le litaba tsa 3.0-rc36. 3.0 mohlomong ke eona mofuta - e bonahala e lekana, empa rc36? Ka kakaretso, software ea motho oa boraro e ke ke ea khona ho lemoha kabo ena ka tsela ea khale.

Karolong ea karohano ea motso, bukana ea /mcst e nka leihlo, mme moo, ka pelo e tebang, ke ile ka fumana /mcst/backup. Ke hore, ho na le sesebelisoa sa ho boloka, 'me se hahiloe ka har'a sistimi! “Ho lokile,” ka nahana, “Ha re boneng hore na sena se sebetsa jwang!”

Ho ile ha fumaneha hore ho na le 4Kb bash script /mcst/bin/backup e fanang ka ho kopitsa faele. Ka kamehla - ho /mcst/backup directory. Khoutung ea mohloli ke ne ke lebelletse ho bona taelo ea rsync, empa ha e tlhophisoeng ea kamehla. Script e kopitsa lifaele feela. Taelo e shebahala tjena:

cp -rpdx <file backup> <file>

Faele kaofela /mcst/bin/backup e teng monaKea u lemosa hang-hang hore script ena feela ha ea lekana ho utloisisa ka botlalo. E hula mesebetsi ho tsoa ho /mcst/bin/source, e leng ntho e kang laebrari ea mesebetsi. Ha kea e kenyelletsa (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

Leha ho le joalo, mohlomong ke ne ke sa utloisise ho hong? Mohlomong motho e mong a ka hlalosa litlhalosong: sengoloa see se tiisa joang hore bekapo e bolokehileng le e tšepahalang ea data? [TBD]

rsync, ka tsela, e kenyelelitsoe ho tlatsetso. bobolokelo. Phetolelo ea 3.1.3. Ke nahana hore ho sebelisa rsync e ntse e le mokhoa o betere oa ho sebelisa /mcst/bin/backup application.

Ka mor'a moo, ke ile ka etsa qeto ea ho beha e ncha Veeam Agent bakeng sa Linux. E mong o tla botsa: "Veeam and import substitution e amana joang le eona?" E, ha e ngolisoe, empa e tiisitsoe ke FSTEC, ho bolelang hore ha ho se na mekhoa e meng e ka sebelisoang. Ho qeta metsotso e leshome le metso e mehlano ka mekhoa e meng e tsoang ho ngodisa, Ke khonne ho fumana lihokelo tsa 3 bakeng sa lentsoe "bekapo" (ha ho le e 'ngoe e amanang le potso ea ka bakeng sa lentsoe "bolokelo"). Ha ke so etse tlhahlobo e tebileng ea mananeo ana, kahoo nke ke ka leka ho ahlola hore na a loketse hakae bakeng sa ho tšehetsa mechini e tsamaisang Linux. Mang kapa mang ea e hlokang o tla iketsetsa qeto mme a fane ka eona litlhalosong.

Mothati oa Boraro - ho kenya Veeam Agent bakeng sa Linux.
Kahoo, Veeam Agent bakeng sa Linux e na le liphutheloana tse peli: module ea kernel ea veeamsnap (ka tsela, mohloli mona) le khoutu ea sebaka sa basebelisi ka mokhoa oa sephutheloana sa veeam.

Ho bile le bothata bo le bong ka ho kenya kernel module - sephutheloana se sieo sa dkms. Ena ke ts'ebeletso e u lumellang hore u thehe li-module tsa kernel ho tsoa mohloling. Joalo ka molao, e fumaneha ho liabo tsohle tsa deb. Ke ile ka tlameha ho e khoasolla ho tsoa polokelong ea batho ba boraro. Ntho e 'ngoe e ileng ea nthabisa ke hore sephutheloana ha se itšetlehe ka meaho, kahoo se tšoana le sa matsoalloa. Ke hobane'ng ha e ne e sa kenyelletsoa lethathamong la liphutheloana tse fumanehang, kapa ho e-na le hoo, e sa ntlafatsoa [TBD]? Mohlomong ho nahanoa hore ha ho motho ea lokelang ho haha ​​​​le ho tsamaisa li-module tseo e seng tsa MCST kernel. Ho hlile ho na le phapang mona - kaha ho na le lihlooho tsa linux. Ke hore, mojule, haeba o lakatsa, o ka bokelloa ka letsoho mme o qalisoa ke script ha mochine o qala. Ke nahana hore ha oa lokela ho lebella lintlafatso khafetsa ho tsoa ho MCST [TBD].

"Ho lokile, module e kentsoe - karolo e thata ka ho fetisisa e felile," ke ile ka nahana ... Sephutheloana sa veeam bakeng sa polokelo ea deb ke bakeng sa sethala sa amd64, 'me Elbrus OS e na le sethala sa x86_64 [TBD]. Phapang, ehlile, e ka lebitso feela, empa phapang ena e etsa hore hoo e ka bang liphutheloana tsohle tse tsoang ho li-deb repositories tsa mokha oa boraro li se ke tsa lumellana le Elbrus OS. Ho se utloisisane hona ho khopisang ho ka felisoa habonolo feela: qhaqholla sephutheloana, lokisa tlhahisoleseling mabapi le meralo ebe o e kopanya hape. Mokhoa oa ho e etsa Ke Google hanghang.

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

Bothata bo bong ke ho itšetleha. Lifaele tse hlokahalang li bonahala li le teng, empa liphutheloana ha li eo. Maikutlo e ne e le hore mabitso a liphutheloana a fapane le "li-analogues tse tsoang kantle ho naha". Mohlomong lilaebrari li phuthetsoe ka tsela e fapaneng. Ha kea ka ka bua ka lintlha tse ngata haholo, ka tlosa hoo e batlang e le lintho tsohle tse itšetlehileng ka eona, 'me ho kenngoa ho ile ha tsoela pele.

Eaba mathata a hlaha ka khoutu ea ho qala tšebeletso. Script /lib/init/vars.sh e ne e le sieo. Ka lebaka le itseng, Elbrus e khona ho e tlosa, kahoo re tla e tlosa. Ka mor'a moo, re ile ra tlameha ho fetola mosebetsi oa tlhahiso ea molaetsa: log_daemon_msg le log_end_msg mesebetsi e ne e le sieo. Ka mor'a ho pota-pota ka har'a faele ea /lib/lsb/init-functions, ke fumane mosebetsi oa log_success_msg - ho tla ba molemo ho rona bakeng sa liteko. Ka tsela, faeleng ea /lib/lsb/init-functions mola "# Source SuSE`s rc function" o qalong ea faele ea [TBD].

Kamora ts'ebetso e mpe joalo ea sephutheloana ka faele, bekapo ea mochini o felletseng karolong ea NFS e ile ea hlahisoa ka katleho. Ho beha bekapo le hona ho atlehile. Kahoo, ke lumela hore bakeng sa ho tšehetsa mochini o nang le Elbrus PDK, o jarollotsoeng "joalo joalo" ntle le boitlamo, Veeam Agent bakeng sa Linux e hlile e loketse. Esita le ka mor'a liphetoho tsohle tse nang le faele.

Ehlile, lisebelisoa tsa kabo ea Elbrus OS ha li tšehetsoe ka molao, kaha ha li kenyellelitsoe lethathamong la tse tšehelitsoeng. Ho feta moo, Veeam Agent bakeng sa Linux ha ea ka ea lekoa ho eona ke lefapha la QA, kahoo ba. ha ho na tšehetso (bonyane nakong ea ho hatisoa ha sehlooho).

Ke tšepa hore sehlooho sena se tla ba molemo ho ba lekang ho kenya ts'ebetsong taelo ea No. 334 ea June 29.06.2017, XNUMX. Ea ka ho uena... [TBD].

Source: www.habr.com

Eketsa ka tlhaloso