Dia duit gach duine.
Ailt le déanaí ar Habré
Ar an gcéad dul síos, chinn mé an Elbrus OS a íoslódáil, nó in áit, ach an dáileadh atá ar fáil don ailtireacht x86_64, féach conas a oibríonn sé, agus déan iarracht Veeam Agent for Linux a shuiteáil air. Más mian leat a fháil amach cad a tháinig as seo, féach cat.
Mar sin, digression beag, i gcás nach bhfuil a fhios ag duine. Tá "Elbrus" mar sin
Retreat beag éigean eile. Is é an fírinne gur dhéileáil mé le bogearraí baile uair amháin, mar MSVS agus Baguette RTOS. Bhí taithí agam ag obair le comhpháirteanna baile, lena n-áirítear próiseálaí ó MCST. Mar sin, is féidir liom a rá le freagracht iomlán go bhfuil sainiúlacht áirithe sa réimse seo agus déanfaidh mé iarracht gan teagmháil a dhéanamh air san alt. Nuair is mian liom, cuirfidh mé an chlib [TBD]. Mar sin déanfaimid iarracht gan trolling glan agus caoineadh banal. Sa deireadh, ní mór tionscal cosanta na Rúise agus gníomhaireachtaí rialtais a thuiscint. Tír mhór, buiséad beag.. [TBD].
Céim nialasach - íoslódáil. Is fiú a lua gur tháinig athshondas ar an nuacht go bhfuil OS Elbrus ar fáil, chomh mór sin gur thit an freastalaí dáileacháin. [TBD] Buíochas le Yandex agus leis an innealtóir a smaoinigh ar é a aistriú ann. Mar sin tá an luas íoslódála go maith.
An chéad chéim - Suiteáil. Suiteáil mé é ar an gcéad hypervisor a bhí ar fáil le húsáid saor in aisce. Leithdháil mé dhá chroílár, cúpla gig de RAM, 32 MB le haghaidh físeáin (beidh comhéadan grafach ann, shíl mé). Is é an diosca mar is gnách - 32 GB.
Thosaigh mé an tsuiteáil. Níor úsáid mé na treoracha suiteála, mar sin ní féidir liom trácht a dhéanamh air. Tá comhéadan suiteála TUI fíor-bheag.
Bhuel, iontach, is féidir linn a dhéanamh gan luch.
D'éirigh liom an chéad fhuinneog eile ar an dara iarracht. Cén fáth nach roghnaíonn tú an gléas réamhshocraithe sr0 [TBD] agus é á shuiteáil ón diosca?
Roghnaigh an fhoinse CD-ROM agus bogadh ar aghaidh.
Agus an crios ama á roghnú agam, thuig mé go tobann go n-úsáideann an córas an próiseas tosaithe init, agus táim ag obair ó TTY0.
Ceart go leor, ansin déanaimis “Elbrus” a rangú mar phobal
Tá an chuid eile beagnach gan tábhacht: cuirimid gach rud agus aontaímid. Ar an mbealach, faighimid amach go n-úsáidtear an eithne 3.14.79-13.84. Hmm, bhí 7 [TBD] ag Debian 3.2.
Ansin, roghnaigh an deighilt diosca réamhshocraithe agus... Feicimid rabhadh:
Hmm, ar bhealach éigin níor dhéileáil an deighilt uathoibríoch go maith le diosca 32 gig. Níor athraigh mé an diosca; chríochnaigh mé an rompu le deighilt diosca láimhe sa stíl “uile-i-amháin”. Bhí orm ext3 a shuiteáil, ós rud é nach bhféadfadh /boot a bheith i ext4.
Tháinig an córas chun cinn gan eachtra.
An dara céim - cuardach a dhéanamh ar roghanna eile.
Tar éis rummaging trí ábhar an dara diosca, thuig mé gur stór é seo le breise. i bpacáistí. Agus ag féachaint ar /etc/apt/sources.list, thuig mé gur gá é a fheistiú i /mnt/cdrom. Ach níor aimsigh mé /etc/os-release. Ach tá /etc/mcst-version leis an ábhar 3.0-rc36. Is dócha gurb é 3.0 an leagan - is cosúil go bhfuil sé oiriúnach, ach rc36? Go ginearálta, is dócha nach mbeidh bogearraí tríú páirtí in ann an dáileadh seo a aithint ar an mbealach clasaiceach.
Sa fhréamhdheighilt, glacann an eolaire / mcst mo shúil, agus ansin, le croí go tóin poill, fuair mé amach / mcst / cúltaca. Is é sin, tá uirlis chúltaca ann, agus tá sé ionsuite sa chóras! “Go hiontach,” shíl mé, “Feicfidh muid conas a oibríonn sé seo!”
Tharla sé go bhfuil script bash 4Kb / mcst/bin/backup a sholáthraíonn cóipeáil comhad. De réir réamhshocraithe - chuig an eolaire /mcst/backup. Sa chód foinse bhí mé ag súil go bhfeicfidh mé an t-ordú rsync, ach níl sé sa chumraíocht réamhshocraithe. Ní dhéanann an script ach comhaid a chóipeáil. Breathnaíonn an t-ordú rud éigin mar seo:
cp -rpdx <file backup> <file>
Tá an comhad iomlán /mcst/bin/backup anseoTugaim rabhadh duit ar an bpointe boise nach leor an script seo amháin le tuiscint iomlán a fháil. Tarraingíonn sé feidhmeanna ó /mcst/bin/source, rud atá cosúil le leabharlann feidhmeanna. Níor chuir mé san áireamh é (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
Cé, b’fhéidir nár thuig mé rud éigin? B'fhéidir gur féidir le duine éigin a mhíniú sna tuairimí: conas a chinntíonn an script seo cúltaca sonraí sábháilte agus iontaofa? [TBD]
Tá rsync, dála an scéil, san áireamh sa bhreiseán. stórtha. Leagan 3.1.3. Sílim gur rogha níos fearr fós é rsync a úsáid seachas an feidhmchlár /mcst/bin/backup.
Ar aghaidh, chinn mé ceann úr a chur Veeam gníomhaire le haghaidh linux a. Fiafróidh duine éigin: “Cad a chaithfidh Veeam agus ionadú iompórtála a dhéanamh leis?” Sea, níl sé sa chlár, ach tá sé deimhnithe ag FSTEC, rud a chiallaíonn gur féidir é a úsáid in éagmais roghanna eile. Cúig nóiméad déag a chaitheamh ar roghanna eile ó
Céim trí — suiteáil Veeam Gníomhaire le haghaidh Linux.
Mar sin, tá dhá phacáiste i nGníomhaire Veeam le haghaidh Linux: an modúl eithne veeamsnap (dála an scéil,
Bhí fadhb bheag amháin ann le suiteáil an mhodúil eithne - an pacáiste dkms a bhí ar iarraidh. Is seirbhís é seo a ligeann duit modúil eithne a thógáil ón bhfoinse. De ghnáth, tá sé ar fáil ar gach dáileadh deb. Bhí orm é a íoslódáil ó stór díospóireachta tríú páirtí. Rud amháin a chuir áthas orm ná nach mbraitheann an pacáiste ar an ailtireacht, mar sin luíonn sé cosúil le ceann dúchais. Cén fáth nár cuireadh san áireamh é ar liosta na bpacáistí a bhí ar fáil, nó nach ndearnadh forbairt air [TBD]? B'fhéidir go nglactar leis nár cheart d'aon duine modúil eithne neamh-MCST a thógáil agus a reáchtáil. Tá neamhréireacht i ndáiríre anseo - ós rud é go bhfuil linux-headers. Is é sin, is féidir an modúl, más inmhianaithe, a chur le chéile de láimh agus a sheoladh le script nuair a thosaíonn an meaisín. Is dóigh liom nár cheart duit a bheith ag súil le nuashonruithe rialta ó MCST [TBD].
“Ceart go leor, tá an modúl suiteáilte - tá an chuid is deacra thart,” shíl mé... Tá an pacáiste veeam don stór deb don ardán amd64, agus tá ardán x86_64 [TBD] ag an Elbrus OS. Níl an difríocht, ar ndóigh, ach san ainm, ach déanann an difríocht seo nach bhfuil beagnach gach pacáiste ó stórtha deb tríú páirtí ag luí leis an Elbrus OS. Is féidir deireadh a chur leis an míthuiscint annoying seo go simplí: díchóimeáil an pacáiste, ceartaigh an fhaisnéis faoin ailtireacht agus cuir ar ais le chéile é. Conas é a dhéanamh
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
Fadhb eile is ea spleáchais. Is cosúil go bhfuil na comhaid riachtanacha ann, ach níl na pacáistí. Ba é an tuiscint go raibh ainmneacha na bpacáistí difriúil óna “analógacha allmhairithe”. B'fhéidir go bhfuil na leabharlanna pacáistithe ar bhealach difriúil. Ní dhearna mé an iomarca sonraí, bhain mé beagnach gach spleáchas, agus chuaigh an tsuiteáil ar aghaidh.
Ansin tháinig fadhbanna chun cinn le cód tosaithe na seirbhíse. Bhí an script /lib/init/vars.sh in easnamh. Ar chúis éigin, bainistíonn Elbrus gan é, mar sin bainfimid é freisin. Ansin, bhí orainn feidhm aschuir na teachtaireachta a athsholáthar: bhí na feidhmeanna log_daemon_msg agus log_end_msg in easnamh. Tar éis rummaging timpeall sa chomhad /lib/lsb/init-functions, fuair mé an fheidhm log_success_msg - beidh sé go maith dúinn le haghaidh turgnaimh. Dála an scéil, sa chomhad /lib/lsb/init-functions tá an líne “# Source SuSE`s rc functions” ag tús an chomhaid [TBD].
Tar éis próiseáil garbh den sórt sin ar an bpacáiste le comhad, seoladh an cúltaca meaisín iomlán ar an sciar NFS go rathúil. D'éirigh leis an bhfeiste cúltaca freisin. Mar sin, creidim, le haghaidh tacaíocht a thabhairt do mheaisín leis an PDK Elbrus, a íoslódáil “díreach mar sin” gan aon oibleagáidí, is cinnte go bhfuil Veeam Agent for Linux oiriúnach. Fiú amháin tar éis na modhnuithe go léir le comhad.
Ar ndóigh, ní thacaítear go foirmiúil le trealamh dáileacháin Elbrus OS, ós rud é nach bhfuil sé san áireamh i liosta na cinn a dtacaítear leo. Ina theannta sin, níor thástáil an roinn QA Gníomhaire Veeam le haghaidh Linux air, mar sin iad siúd. níl aon tacaíocht ann (ar a laghad tráth foilsithe an ailt).
Tá súil agam go mbeidh an t-alt úsáideach dóibh siúd atá ag iarraidh ordú Uimh. 334 de 29.06.2017 Meitheamh XNUMX a chur i bhfeidhm. Mo cheann duit... [TBD].
Foinse: will.com