Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']

Talofa tagata uma.
Tala lata mai i Habré Sui fa'aulufale mai ile fa'atinoga. Vaega 1. Filifiliga и E leʻi taʻalo le musika mo se taimi umi ... pe faʻafefea ona leai se saʻolotoga o Elbrus OS na te le'i tuua a'u e le popole. Sa ou filifili e suesue i lenei mataupu i le tulaga o le galuega faaleoleo. E lē gata i lea, i lenei tusiga O lo'o ta'ua oloa a le Veeam Software, o lona uiga o le mataupu e ono fa'atatau i le tulaga o le fa'aulufale mai.

Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']
puna ata muamua

Muamua lava, na ou filifili e sii mai le Elbrus OS, pe sili atu, naʻo le tufatufaina avanoa mo le fausaga x86_64, vaʻai pe faʻapefea ona galue, ma taumafai e faʻapipiʻi Veeam Agent mo Linux i luga. Afai e te fia iloa po o le a le mea na tupu mai i lenei mea, fa'amolemole va'ai pusi.

O lea la, o se faʻalavelave laʻititi, pe a le iloa e se tasi. "Elbrus" e faapena faagasologa fa'atasi ai ma se faiga fa'atonu fa'apitoa. I le faaopoopo atu i ai, o loʻo i ai le polokalama Elbrus OS. Ma - e feteenai ma talitonuga lauiloa - e faʻaogaina le Elbrus OS, e le manaʻomia le i ai o se masini komepiuta e faʻavae i luga o le Elbrus processor. O loʻo i ai le "PDK "Elbrus" mo le x86 - o le mea moni, na faʻaalia i le lautele lautele i le tulaga o se tisiki faʻapipiʻi. I le ala, o loʻo i ai le vaefaʻamatalaga "PDK - pusa atinaʻe faʻavae, pusa faʻapipiʻi" - lelei, o lona uiga o loʻo i ai se tagata faʻapipiʻi iina.

O se isi solomuli faamalosi laitiiti. O le mea moni na ou feagai muamua ma polokalama faʻapitonuʻu, pei ole MSVS ma Baguette RTOS. Sa ou maua le poto masani e galue ai ma vaega o le lotoifale, e aofia ai le gaosiga mai le MCST. O le mea lea, e mafai ona ou fai atu ma le tiute atoa o loʻo i ai se tulaga faʻapitoa i lenei vaega ma o le a ou taumafai e aua le paʻi i ai i le tusiga. A ou manaʻo moni lava, ou te tuʻuina le pine [TBD]. O lea o le a tatou taumafai e fai e aunoa ma le trolling tuusaʻo ma banal oi. I le faaiuga, e manaʻomia ona malamalama i le vaega o le puipuiga a Rusia ma lala sooupu a le malo. Atunuu tele - laititi le paketi.. [TBD].

Ole tulaga - download. E maitauina o le talafou o le Elbrus OS ua avanoa na mafua ai le faʻalogo, o le mea lea na paʻu ai le server tufatufa. [TBD] Fa'afetai ia Yandex ma le inisinia na mafaufau e fa'anofo iina. O lea e lelei le saoasaoa o le download.

O le taimi muamua - fa'apipi'i. Na ou faʻapipiʻiina i luga o le hypervisor muamua na avanoa mo le faʻaaogaina fua. Na ou tuʻuina atu ni faʻailoga se lua, se lua gigs o le RAM, 32 MB mo le vitio (o le ai ai se faʻataʻitaʻiga faʻataʻitaʻi, na ou manatu). O le tisiki e pei ona masani ai - 32 GB.
Na ou amataina le faʻapipiʻiina. Ou te leʻi faʻaogaina faʻatonuga faʻapipiʻi, o lea e le mafai ai ona ou faʻamatalaina. O le faʻapipiʻi faʻapipiʻi TUI e matua faʻaititia.

Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']
Ia, lelei, e mafai ona tatou faia e aunoa ma se isumu.

Sa ou pulea le isi faamalama i le taumafaiga lona lua. Aisea e te le filifilia ai le masini faaletonu sr0 [TBD] pe a faʻapipiʻi mai le disk?
Filifili le puna CD-ROM ma agai i luma.

Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']

A'o ou filifilia le sone taimi, na fa'afuase'i ona ou iloa o lo'o fa'aogaina e le faiga le init boot process, ma o lo'o ou galue mai le TTY0.

Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']

Ua lelei, ona tatou fa'avasegaina lea "Elbrus" o se fa'alapotopotoga Tagata Talitonu Tuai[TBD]. I le faʻavae, e lelei lenei mea: e te le manaʻomia le fesili mo le code source e vaʻai ai pe faʻafefea ona galue le faagasologa o le download, talu ai o mea uma o loʻo tusia.

O isi e toetoe lava a le taua: matou te tuʻuina mea uma ma malilie. I luga o le ala, matou te iloa ai o loʻo faʻaaogaina le fatu 3.14.79-13.84. Hmm, Debian 7 sa i ai le 3.2 [TBD].

Le isi, filifili le fa'aletonu o le vaeluaga o le disk ma... Matou te va'ai i se lapataiga:

Linux Backup mai Veeam ile Elbrus OS. Sui fa'aulufale mai ['?' | '.' | '!']

Hmm, o le vaeluaga otometi e leʻi fetaui lelei ma le 32 gig disk. Ou te leʻi suia le tisiki; Sa ou faʻamaeʻaina le sailiga i le vaeluaga o le tisiki tusi i le sitaili "uma-i-tasi". E tatau ona ou faʻapipiʻi ext3, talu ai e le mafai ona i ai le / boot i le ext4.
Na sau le faiga e aunoa ma se faalavelave.

Laasaga lona lua - saili mo isi mea.
Ina ua uma ona suʻesuʻeina mea o loʻo i totonu o le disk lona lua, na ou iloa ai o se fale teu oloa ma faʻaopoopoga. i totonu o afifi. Ma vaʻavaʻai i /etc/apt/sources.list, na ou iloa ai e manaʻomia ona faʻapipiʻi i /mnt/cdrom. Ae ou te leʻi mauaina /etc/os-release. Ae o loʻo i ai /etc/mcst-version faʻatasi ai ma mea o loʻo i totonu 3.0-rc36. 3.0 atonu o le lomiga - e foliga mai e fetaui, ae rc36? I se tulaga lautele, o polokalama faakomepiuta lona tolu e foliga mai e le mafai ona iloa lenei tufatufaga i le auala masani.

I le vaeluaga o aʻa, o le /mcst directory e puʻeina laʻu mata, ma o iina, ma se fatu magoto, na ou mauaina /mcst/backup. O lona uiga, o loʻo i ai se meafaigaluega faʻapipiʻi, ma ua fausia i totonu o le polokalama! “Manaia,” sa ou mafaufau ai, “Sei o tatou vaai pe faapefea ona aoga lenei mea!”

Na aliali mai o loʻo i ai se 4Kb bash script /mcst/bin/backup e maua ai le kopiina o faila. Ile faaletonu - i le /mcst/backup directory. I le source code na ou faʻamoemoe e vaʻai i le rsync command, ae e leʻo i totonu o le faʻaogaina le faʻaogaina. O le tusitusiga e na o le kopiina o faila. O le poloaiga e pei o lenei:

cp -rpdx <file backup> <file>

Le faila atoa /mcst/bin/backup o loʻo i ai iineiOu te lapataia oe i le taimi lava lena e le lava na o lenei tusitusiga e malamalama atoatoa ai. E toso galuega mai /mcst/bin/source, o se mea e pei o se faletusi o galuega. Ou te le'i fa'aofiina (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

E ui lava, atonu ou te leʻi malamalama i se mea? Atonu e mafai e se tasi ona faʻamatalaina i faʻamatalaga: faʻafefea ona faʻamautinoa e lenei tusitusiga le saogalemu ma le faʻatuatuaina o faʻamaumauga? [TBD]

rsync, i le ala, o loʻo aofia i le faʻaopoopoga. faleteuoloa. Fa'aliliuga 3.1.3. Ou te manatu o le faʻaaogaina o le rsync o se mea sili atu lea i le /mcst/bin/backup application.

Na sosoo ai, na ou filifili e tuu se mea fou Veeam Agent mo Linux. O le a fesili se tasi: "O le a le mea e fai e Veeam ma le suitulaga o oloa mai fafo?" Ioe, e le oi totonu o le tusi resitala, ae faʻamaonia e le FSTEC, o lona uiga pe a leai ni isi mea e mafai ona faʻaaogaina. Fa'aalu le sefululima minute i isi mea mai lesitala, Sa mafai ona ou mauaina 3 sootaga mo le upu "backup" (leai se mea e fesootai ma laʻu fesili mo le upu "faasao"). Ou te leʻi faia se suʻesuʻega loloto o nei polokalame, o lea o le a ou le taumafai ai e faʻamasino pe o le a le talafeagai o latou mo le lagolagoina o masini e faʻaogaina Linux. Po'o ai lava e mana'omia o le a ia tusia lana lava fa'ai'uga ma fa'asoa i fa'amatalaga.

Vaega Lona tolu - faʻapipiʻiina o le Veeam Agent mo Linux.
O lea la, Veeam Agent mo Linux e aofia ai ni afifi se lua: le veeamsnap kernel module (i le ala, puna iinei) ma fa'ailoga tagata fa'aoga-avanoa i le tulaga o le veeam package.

E tasi lava le fa'afitauli i le fa'apipi'iina o le kernel module - o le dkms package ua misi. Ole 'au'aunaga lea e fa'ataga ai oe e fausia ni fa'aoga fatu mai le puna. I le avea ai ma tulafono, o loʻo avanoa i faʻasalalauga uma. Sa tatau ona ou sii maia mai se fale teu oloa a le isi vaega. E tasi le mea na ou fiafia ai o le afifi e le faalagolago i le fausaga, o lea e fetaui lelei e pei o se tagata. Aisea na le aofia ai i le lisi o afifi avanoa, pe sili atu, e leʻi atiaʻe [TBD]? Masalo e manatu e leai se tasi e tatau ona fausia ma faʻatautaia soʻo se modules kernel e le MCST. E i ai moni lava se eseesega iinei - talu ai o loʻo i ai linux-headers. O lona uiga, o le module, pe a manaʻomia, e mafai ona faʻapipiʻi lima ma faʻalauiloa e se tusitusiga pe a amata le masini. Ou te manatu e le tatau ona e faʻamoemoeina faʻafouga masani mai le MCST [TBD].

"Ua lelei, ua faʻapipiʻi le module - ua uma le vaega sili ona faigata," na ou manatu ai ... O le veeam package mo le deb repository e mo le amd64 platform, ma o le Elbrus OS e iai le x86_64 [TBD] platform. O le eseesega, ioe, e naʻo le igoa, ae o lenei eseesega e toetoe lava o afifi uma mai fale teu oloa a le isi vaega e le fetaui ma le Elbrus OS. O lenei le femalamalamaaʻi faʻafefe e mafai ona faʻaumatia faigofie: naʻo le faʻamavaeina o le afifi, faʻasaʻo faʻamatalaga e uiga i le fausaga ma toe tuʻu faʻatasi. E faapefea ona fai Google i ai vave.

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

O le isi fa'afitauli o le fa'alagolago. O faila manaʻomia e foliga mai o loʻo i ai iina, ae o afifi e leai. O le manatu e faapea o igoa o afifi e ese mai a latou "auga faʻaulufale mai". Masalo o faletusi e ese le afifiina. Ou te leʻi alu i le tele o auiliiliga, aveese toetoe lava o faʻalagolago uma, ma faʻaauau le faʻapipiʻiina.

Ona alia'e mai lea o faafitauli i le code start service. Ua misi le script /lib/init/vars.sh. Mo nisi mafuaʻaga, e pulea e Elbrus e aunoa ma lea, o lea o le a matou aveesea foi. O le isi, e tatau ona sui le galuega faatino o fe'au: o le log_daemon_msg ma le log_end_msg galuega ua misi. Ina ua uma ona suʻesuʻeina i totonu o le faila / lib / lsb / init-functions, na ou mauaina le log_success_msg galuega - o le a lelei mo i matou mo suʻega. I le auala, i le / lib / lsb / init-functions faila le laina "# Source SuSE's rc functions" o loʻo i le amataga o le [TBD] faila.

Ina ua maeʻa le faʻagasologa faigata o le afifi ma se faila, o le faʻamaumauga atoa o le masini i luga o le faʻasoa NFS na faʻatautaia ma le manuia. Sa manuia foi le mauga faaleoleo. O lea, ou te talitonu o le lagolagoina o se masini ma le Elbrus PDK, sii mai "pei o lena" e aunoa ma ni noataga, Veeam Agent mo Linux e mautinoa lava talafeagai. Tusa lava pe a uma suiga uma ma se faila.

O le mea moni, o le pusa tufatufaina o Elbrus OS e le o lagolagoina aloaia, talu ai e le o aofia ai i le lisi o mea e lagolagoina. E le gata i lea, o le Veeam Agent mo Linux e leʻi faʻataʻitaʻiina e le QA matagaluega, o lea. e leai se lagolago (a itiiti ifo i le taimi o le lolomiina o le tusiga).

Ou te faʻamoemoe o le a aoga le tusiga ia i latou o loʻo taumafai e faʻatinoina le poloaiga Numera 334 o Iuni 29.06.2017, XNUMX. O la'u ia te oe... [TBD].

puna: www.habr.com

Faaopoopo i ai se faamatalaga