เชฌเชงเชพ เชจเซ เชจเชฎเชธเซเชเชพเชฐ.
เชนเซเชฌเซเชฐเซ เชชเชฐ เชคเชพเชเซเชคเชฐเชจเชพ เชฒเซเชเซ
เชธเซ เชชเซเชฐเชฅเชฎ, เชฎเซเช เชเชฒเซเชฌเซเชฐเชธ เชเชเชธ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช, เช
เชฅเชตเชพ เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชซเชเซเชค x86_64 เชเชฐเซเชเชฟเชเซเชเซเชเชฐ เชฎเชพเชเซ เชเชชเชฒเชฌเซเชง เชตเชฟเชคเชฐเชฃ, เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซ เชเซเช, เช
เชจเซ เชคเซเชจเชพ เชชเชฐ Linux เชฎเชพเชเซ Veeam เชเชเชจเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ. เชเซ เชคเชฎเชพเชฐเซ เชเชพเชฃเชตเซเช เชนเซเชฏ เชเซ เชเชฎเชพเชเชฅเซ เชถเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ, เชคเซ เชเซเชชเชพ เชเชฐเซเชจเซ เชฌเชฟเชฒเชพเชกเซ เชเซเช.
เชคเซเชฅเซ, เชเช เชจเชพเชจเซเช เชตเชฟเชทเชฏเชพเชเชคเชฐ, เชเซ เชเซเชเชจเซ เชเชฌเชฐ เชจ เชนเซเชฏ. "เชเชฒเซเชฌเซเชฐเชธ" เชเชตเซเช เชเซ
เชฌเซเชเซ เชจเชพเชจเซ เชซเชฐเชเชฟเชฏเชพเชค เชชเซเชเซเชนเช . เชนเชเซเชเชค เช เชเซ เชเซ เชฎเซเช เชเชเชตเชพเชฐ เชเชฐเซเชฒเซเช เชธเซเชซเซเชเชตเซเชฐ, เชเซเชฎ เชเซ MSVS เช เชจเซ Baguette RTOS เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเซเชฏเซ เชนเชคเซ. เชฎเชจเซ MCST เชจเชพ เชชเซเชฐเซเชธเซเชธเชฐ เชธเชนเชฟเชค เชเชฐเซเชฒเซเช เชเชเชเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เช เชจเซเชญเชต เชนเชคเซ. เชคเซเชฅเซ, เชนเซเช เชธเชเชชเซเชฐเซเชฃ เชเชตเชพเชฌเชฆเชพเชฐเซ เชธเชพเชฅเซ เชเชนเซ เชถเชเซเช เชเซเช เชเซ เช เชเซเชทเซเชคเซเชฐเชฎเชพเช เชเซเชเซเชเชธ เชตเชฟเชถเชฟเชทเซเชเชคเชพ เชเซ เช เชจเซ เชนเซเช เชฒเซเชเชฎเชพเช เชคเซเชจเซ เชธเซเชชเชฐเซเชถ เชจ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชถ. เชเซเชฏเชพเชฐเซ เชนเซเช เชเชฐเซเชเชฐ เชเชเซเชเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เชนเซเช [TBD] เชเซเช เชฎเซเชเซเชถ. เชคเซเชฅเซ เช เชฎเซ เชธเชเชชเซเชฐเซเชฃ เชเซเชฐเซเชฒเชฟเชเช เช เชจเซ เชฎเชพเชฎเซเชฒเซ เชตเชฟเชฒเชพเชช เชตเชฟเชจเชพ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชถเซเช. เช เชเชคเซ, เชฐเชถเชฟเชฏเชจ เชธเชเชฐเชเซเชทเชฃ เชเชฆเซเชฏเซเช เช เชจเซ เชธเชฐเชเชพเชฐเซ เชเชเชจเซเชธเซเชเชจเซ เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชฎเซเชเซ เชฆเซเชถ - เชจเชพเชจเซเช เชฌเชเซเช.. [TBD].
เชถเซเชจเซเชฏ เชธเซเชเซเช - เชกเชพเชเชจเชฒเซเชก เชเชฐเซ. เชจเซเชเชงเชจเซเชฏ เชเซ เชเซ Elbrus OS เชเชชเชฒเชฌเซเชง เชฅเชฏเชพเชจเชพ เชธเชฎเชพเชเชพเชฐเชจเซ เชเชพเชฐเชฃเซ เชเช เชชเชกเชเซ เชชเชกเซเชฏเซ, เชเซเชฅเซ เชตเชฟเชคเชฐเชฃ เชธเชฐเซเชตเชฐ เชกเชพเชเชจ เชฅเช เชเชฏเซเช. [TBD] Yandex เช เชจเซ เชเชจเซเชเชฟเชจเชฟเชฏเชฐเชจเซ เชเชญเชพเชฐ เชเซ เชเซเชฎเชฃเซ เชคเซเชจเซ เชคเซเชฏเชพเช เชเชธเซเชกเชตเชพเชจเซเช เชตเชฟเชเชพเชฐเซเชฏเซเช. เชคเซเชฅเซ เชกเชพเชเชจเชฒเซเชก เชธเซเชชเซเชก เชธเชพเชฐเซ เชเซ.
เชชเซเชฐเชฅเชฎ เชคเชฌเชเซเชเซ - เชธเซเชฅเชพเชชเชจ. เชฎเซเช เชคเซเชจเซ เชชเซเชฐเชฅเชฎ เชนเชพเชเชชเชฐเชตเชพเชเชเชฐ เชชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช เชเซ เชฎเชซเชค เชเชชเชฏเซเช เชฎเชพเชเซ เชเชชเชฒเชฌเซเชง เชนเชคเซเช. เชฎเซเช เชตเชฟเชกเชฟเชฏเซ เชฎเชพเชเซ เชฌเซ เชเซเชฐเซ, เชฐเซเชฎเชจเชพ เชฌเซ เชเซเชเซเชธ, 32 MB (เชคเซเชฏเชพเช เชเช เชเซเชฐเชพเชซเชฟเชเชฒ เชเชจเซเชเชฐเชซเซเชธ เชนเชถเซ, เชฎเซเช เชตเชฟเชเชพเชฐเซเชฏเซเช) เชซเชพเชณเชตเซเชฏเชพ เชเซ. เชกเชฟเชธเซเช เชนเชเชฎเซเชถเชจเซ เชเซเชฎ เชเซ - 32 เชเซเชฌเซ.
เชฎเซเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชถเชฐเซ เชเชฐเซเชฏเซเช. เชฎเซเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเซเชเชจเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชจเชฅเซ, เชคเซเชฅเซ เชนเซเช เชคเซเชจเชพ เชชเชฐ เชเชฟเชชเซเชชเชฃเซ เชเชฐเซ เชถเชเชคเซ เชจเชฅเซ. TUI เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชเชจเซเชเชฐเชซเซเชธ เชเชเชญเซเชฐ เชฐเซเชคเซ เชจเซเชฏเซเชจเชคเชฎ เชเซ.
เชธเชพเชฐเซเช, เชธเชฐเชธ, เชเชชเชฃเซ เชฎเชพเชเชธ เชตเชฟเชจเชพ เชเชฐเซ เชถเชเซเช เชเซเช.
เชฎเซเช เชฌเซเชเชพ เชชเซเชฐเชฏเชพเชธเชฎเชพเช เชเชเชฒเซ เชตเชฟเชเชกเซเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเซเชฏเซเช. เชกเชฟเชธเซเชเชฎเชพเชเชฅเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชกเชฟเชซเซเชฒเซเช เชเชชเชเชฐเชฃ sr0 [TBD] เชเซเชฎ เชชเชธเชเชฆ เชเชฐเชถเซ เชจเชนเซเช?
CD-ROM เชธเซเชคเซเชฐเซเชค เชชเชธเชเชฆ เชเชฐเซ เช
เชจเซ เชเชเชณ เชตเชงเซ.
เชธเชฎเชฏ เชเซเชจ เชชเชธเชเชฆ เชเชฐเชคเซ เชตเชเชคเซ, เชฎเชจเซ เช
เชเชพเชจเช เชธเชฎเชเชพเชฏเซเช เชเซ เชธเชฟเชธเซเชเชฎ init เชฌเซเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เช
เชจเซ เชนเซเช TTY0 เชฅเซ เชเชพเชฎ เชเชฐเซเช เชเซเช.
เช เซเช เชเซ, เชคเซ เชเชพเชฒเซ โElbrusโ เชจเซ เชธเชฎเซเชฆเชพเชฏ เชคเชฐเซเชเซ เชตเชฐเซเชเซเชเซเชค เชเชฐเซเช
เชฌเชพเชเซเชจเซเช เชฒเชเชญเช เชฌเชฟเชจเชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ: เช เชฎเซ เชฌเชงเซเช เชฎเซเชเซเช เชเซเช เช เชจเซ เชธเชเชฎเชค เชเซเช. เชฐเชธเซเชคเชพเชฎเชพเช, เชเชชเชฃเซ เชถเซเชงเซ เชเชพเชขเซเช เชเซเช เชเซ เชเชฐเซเชจเชฒ 3.14.79-13.84 เชตเชชเชฐเชพเชฏ เชเซ. เชนเชฎเซเชฎ, เชกเซเชฌเชฟเชฏเชจ 7 เชชเชพเชธเซ 3.2 [TBD] เชนเชคเซเช.
เชเชเชณ, เชกเชฟเชซเซเชฒเซเช เชกเชฟเชธเซเช เชชเชพเชฐเซเชเซเชถเชจ เชชเชธเชเชฆ เชเชฐเซ เช เชจเซ... เช เชฎเชจเซ เชเซเชคเชตเชฃเซ เชฆเซเชเชพเชฏ เชเซ:
เชนเชฎเซเชฎ, เชเซเชเช เชฐเซเชคเซ เชธเซเชตเชเชพเชฒเชฟเชค เชชเชพเชฐเซเชเซเชถเชจ 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 เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เชตเชงเซ เชธเชพเชฐเซ เชตเชฟเชเชฒเซเชช เชเซ.
เชเชเชณ, เชฎเซเช เชเช เชจเชตเซเช เชฎเซเชเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช Linux เชฎเชพเชเซ Veeam เชเชเชจเซเช. เชเซเช เชชเซเชเชถเซ: "เชตเซเชฎ เช
เชจเซ เชเชฏเชพเชค เช
เชตเซเชเซเชจเซ เชคเซเชจเซ เชธเชพเชฅเซ เชถเซเช เชธเชเชฌเชเชง เชเซ?" เชนเชพ, เชคเซ เชฐเชเชฟเชธเซเชเชฐเชฎเชพเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ FSTEC เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชเซ, เชเซเชจเซ เช
เชฐเซเชฅ เชเซ เชเซ เชตเชฟเชเชฒเซเชชเซเชจเซ เชเซเชฐเชนเชพเชเชฐเซเชฎเชพเช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชฎเชพเชเชฅเซ เชตเชฟเชเชฒเซเชชเซ เชชเชฐ เชชเชเชฆเชฐ เชฎเชฟเชจเชฟเช เชตเชฟเชคเชพเชตเซ
เชธเซเชเซเช เชคเซเชฐเชฃ - Linux เชฎเชพเชเซ Veeam เชเชเชจเซเชเชจเซ เชธเซเชฅเชพเชชเชจเชพ.
เชคเซเชฅเซ, Linux เชฎเชพเชเซ Veeam Agent เชฌเซ เชชเซเชเซเชเซ เชงเชฐเชพเชตเซ เชเซ: veeamsnap เชเชฐเซเชจเชฒ เชฎเซเชกเซเชฏเซเชฒ (เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ,
เชเชฐเซเชจเชฒ เชฎเซเชกเซเชฏเซเชฒ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเช เชจเชพเชจเซ เชธเชฎเชธเซเชฏเชพ เชนเชคเซ - เชเซเชเซ เชเซ dkms เชชเซเชเซเช. เช เชเชตเซ เชธเซเชตเชพ เชเซ เชเซ เชคเชฎเชจเซ เชธเซเชคเซเชฐเซเชคเชฎเชพเชเชฅเซ เชเชฐเซเชจเชฒ เชฎเซเชกเซเชฏเซเชฒเซ เชฌเชจเชพเชตเชตเชพเชจเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ. เชเช เชจเชฟเชฏเชฎ เชคเชฐเซเชเซ, เชคเซ เชคเชฎเชพเชฎ เชกเซเชฌ เชตเชฟเชคเชฐเชฃเซ เชชเชฐ เชเชชเชฒเชฌเซเชง เชเซ. เชฎเชพเชฐเซ เชคเซเชจเซ เชคเซเชคเซเชฏ-เชชเชเซเชท เชกเซเชฌ เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเซเช เชชเชกเซเชฏเซเช. เชเช เชตเชธเซเชคเซ เชเซเชฃเซ เชฎเชจเซ เชเชจเชเชฆ เชเชชเซเชฏเซ เชคเซ เช เชเซ เชเซ เชชเซเชเซเช เชเชฐเซเชเชฟเชเซเชเซเชเชฐ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชจเชฅเซ, เชคเซเชฅเซ เชคเซ เชฎเซเชณเชจเซ เชเซเชฎ เชซเชฟเช เชเซ. เชถเชพ เชฎเชพเชเซ เชคเซ เชเชชเชฒเชฌเซเชง เชชเซเชเซเชเซเชจเซ เชธเซเชเชฟเชฎเชพเช เชถเชพเชฎเซเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชจ เชนเชคเซเช, เช เชฅเชตเชพ เชคเซเชจเชพ เชฌเชฆเชฒเซ, [TBD] เชตเชฟเชเชธเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชจ เชนเชคเซเช? เชเชฆเชพเช เชเชตเซเช เชฎเชพเชจเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชเซเชเช เชเซเชเชชเชฃ เชฌเชฟเชจ-MCST เชเชฐเซเชจเชฒ เชฎเซเชกเซเชฏเซเชฒเซ เชฌเชจเชพเชตเชตเชพ เช เชจเซ เชเชฒเชพเชตเชตเชพ เชเซเชเช เชจเชนเซเช. เช เชนเซเช เชเชฐเซเชเชฐ เชเช เชตเชฟเชธเชเชเชคเชคเชพ เชเซ - เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เชฒเชฟเชจเชเซเชธ-เชนเซเชกเชฐ เชเซ. เชเชเชฒเซ เชเซ, เชฎเซเชกเซเชฏเซเชฒ, เชเซ เชเชเซเชเชฟเชค เชนเซเชฏ, เชคเซ เชคเซเชจเซ เชนเชพเชฅเชฅเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชเซเชฏเชพเชฐเซ เชฎเชถเซเชจ เชถเชฐเซ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ เชธเซเชเซเชฐเชฟเชชเซเช เชฆเซเชตเชพเชฐเชพ เชฒเซเชจเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชคเชฎเชพเชฐเซ MCST [TBD] เชคเชฐเชซเชฅเซ เชตเชพเชฐเชเชตเชพเชฐ เช เชชเชกเซเชเซเชธเชจเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเชตเซ เชเซเชเช เชจเชนเซเช.
"เช เซเช เชเซ, เชฎเซเชกเซเชฏเซเชฒ เชเชจเซเชธเซเชเซเชฒ เชฅเช เชเชฏเซเช เชเซ - เชธเซเชฅเซ เชฎเซเชถเซเชเซเชฒ เชญเชพเช เชธเชฎเชพเชชเซเชค เชฅเช เชเชฏเซ เชเซ," เชฎเซเช เชตเชฟเชเชพเชฐเซเชฏเซเช... เชกเซเชฌ เชฐเชฟเชชเซเชเซเชเชฐเซ เชฎเชพเชเซเชจเซเช เชตเซเชฎ เชชเซเชเซเช amd64 เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชฎเชพเชเซ เชเซ, เช
เชจเซ Elbrus OS เชชเชพเชธเซ x86_64 [TBD] เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชเซ. เชคเชซเชพเชตเชค, เช
เชฒเชฌเชคเซเชค, เชซเชเซเชค เชจเชพเชฎเชฎเชพเช เชเซ, เชชเชฐเชเชคเซ เช เชคเชซเชพเชตเชค เชคเซเชคเซเชฏ-เชชเชเซเชท เชกเซเชฌ เชฐเชฟเชชเซเชเซเชเชฐเซเชเชจเชพ เชฒเชเชญเช เชคเชฎเชพเชฎ เชชเซเชเซเชเซเชจเซ Elbrus OS เชธเชพเชฅเซ เช
เชธเชเชเชค เชฌเชจเชพเชตเซ เชเซ. เช เชนเซเชฐเชพเชจ เชเชฐเชคเซ เชเซเชฐเชธเชฎเชเชจเซ เชธเชฐเชณ เชฐเซเชคเซ เชฆเซเชฐ เชเชฐเซ เชถเชเชพเชฏ เชเซ: เชซเชเซเชค เชชเซเชเซเชเชจเซ เชกเชฟเชธเชเชธเซเชฎเซเชฌเชฒ เชเชฐเซ, เชเชฐเซเชเชฟเชเซเชเซเชเชฐ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซเชจเซ เช เซเช เชเชฐเซ เช
เชจเซ เชคเซเชจเซ เชซเชฐเซเชฅเซ เชเชเชธเชพเชฅเซ เชฎเซเชเซ. เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซเช
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
เชฌเซเชเซ เชธเชฎเชธเซเชฏเชพ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชเซ. เชเชฐเซเชฐเซ เชซเชพเชเชฒเซ เชคเซเชฏเชพเช เชนเซเชฏ เชคเซเชตเซเช เชฒเชพเชเซ เชเซ, เชชเชฐเชเชคเซ เชชเซเชเซเชเซ เชจเชฅเซ. เชเชพเชช เช เชนเชคเซ เชเซ เชชเซเชเซเชเซเชจเชพ เชจเชพเชฎ เชคเซเชฎเชจเชพ "เชเชฏเชพเชค เชเชฐเซเชฒ เชเชจเชพเชฒเซเช" เชฅเซ เช เชฒเช เชเซ. เชเชฆเชพเช เชชเซเชธเซเชคเชเชพเชฒเชฏเซ เช เชฒเช เชฐเซเชคเซ เชชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชนเซเช เชตเชงเชพเชฐเซ เชตเชฟเชเชคเชฎเชพเช เชเชฏเซ เชจเชฅเซ, เชฒเชเชญเช เชคเชฎเชพเชฎ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ เชฆเซเชฐ เชเชฐเซ, เช เชจเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชเชเชณ เชตเชงเซเชฏเซเช.
เชชเชเซ เชธเซเชตเชพ เชชเซเชฐเชพเชฐเชเชญ เชเซเชก เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพเช เชเชญเชฐเซ. เชธเซเชเซเชฐเชฟเชชเซเช /lib/init/vars.sh เชเซเชเซ เชเซ. เชเซเชเชฒเชพเช เชเชพเชฐเชฃเซเชธเชฐ, Elbrus เชคเซเชจเชพ เชตเชฟเชจเชพ เชฎเซเชจเซเช เชเชฐเซ เชเซ, เชคเซเชฅเซ เช เชฎเซ เชคเซเชจเซ เชชเชฃ เชฆเซเชฐ เชเชฐเซเชถเซเช. เชเชเชณ, เช เชฎเชพเชฐเซ เชฎเซเชธเซเช เชเชเชเชชเซเช เชซเชเชเซเชถเชจ เชฌเชฆเชฒเชตเซเช เชชเชกเซเชฏเซเช: log_daemon_msg เช เชจเซ log_end_msg เชซเชเชเซเชถเชจ เชเซเชเซ เชเซ. /lib/lsb/init-functions เชซเชพเชเชฒเชฎเชพเช เชซเชฐเซเชฏเชพ เชชเชเซ, เชฎเชจเซ log_success_msg เชซเชเชเซเชถเชจ เชฎเชณเซเชฏเซเช - เชคเซ เชชเซเชฐเชฏเซเชเซ เชฎเชพเชเซ เช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชธเชพเชฐเซเช เชฐเชนเซเชถเซ. เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, /lib/lsb/init-functions เชซเชพเชเชฒเชฎเชพเช [TBD] เชซเชพเชเชฒเชจเซ เชถเชฐเซเชเชคเชฎเชพเช โ# Source SuSE`s rc functionsโ เชฒเชพเชเชจ เชเซ.
เชซเชพเชเชฒ เชธเชพเชฅเซ เชชเซเชเซเชเชจเซ เชเชตเซ เชฐเชซ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชชเชเซ, NFS เชถเซเชฐ เชชเชฐ เชธเชเชชเซเชฐเซเชฃ-เชฎเชถเซเชจ เชฌเซเชเช เชช เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชฒเซเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เชฌเซเชเช เชช เชฎเชพเชเชจเซเช เชชเชฃ เชธเชซเชณ เชฐเชนเซเชฏเซเช. เชคเซเชฅเซ, เชนเซเช เชฎเชพเชจเซเช เชเซเช เชเซ Elbrus PDK เชธเชพเชฅเซเชจเชพ เชฎเชถเซเชจเชจเซเช เชฌเซเชเช เชช เชฒเซเชตเชพ เชฎเชพเชเซ, เชเซเชเชชเชฃ เชเชตเชพเชฌเชฆเชพเชฐเซ เชตเชฟเชจเชพ เชกเชพเชเชจเชฒเซเชก เชเชฐเซเชฒ โเชเซเชฎ เชเซโ, Linux เชฎเชพเชเซ Veeam เชเชเชจเซเช เชเซเชเซเชเชธเชชเชฃเซ เชฏเซเชเซเชฏ เชเซ. เชซเชพเชเชฒ เชธเชพเชฅเซเชจเชพ เชคเชฎเชพเชฎ เชซเซเชฐเชซเชพเชฐเซ เชชเชเซ เชชเชฃ.
เช เชฒเชฌเชคเซเชค, เชเชฒเซเชฌเซเชฐเชธ เชเชเชธ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชถเชจ เชเชฟเช เชเชชเชเชพเชฐเชฟเช เชฐเซเชคเซ เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชธเชฎเชฐเซเชฅเชฟเชค เชฒเซเชเซเชจเซ เชธเซเชเชฟเชฎเชพเช เชถเชพเชฎเซเชฒ เชจเชฅเซ. เชตเชงเซเชฎเชพเช, Linux เชฎเชพเชเซ Veeam เชเชเชจเซเชเชจเซเช QA เชตเชฟเชญเชพเช เชฆเซเชตเชพเชฐเชพ เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชจ เชนเชคเซเช, เชคเซเชฅเซ เชคเซ. เชคเซเชฏเชพเช เชเซเช เชธเชฎเชฐเซเชฅเชจ เชจเชฅเซ (เชเชเชพเชฎเชพเช เชเชเซเช เชฒเซเชเชจเชพ เชชเซเชฐเชเชพเชถเชจ เชธเชฎเชฏเซ).
เชนเซเช เชเชถเชพ เชฐเชพเชเซเช เชเซเช เชเซ เชฒเซเช เชคเซ เชฒเซเชเซ เชฎเชพเชเซ เชเชชเชฏเซเชเซ เชฅเชถเซ เชเซเช 334 เชเซเชจ, 29.06.2017 เชจเชพ เชเชฐเซเชกเชฐ เชจเชเชฌเชฐ XNUMX เชจเซ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ. เชฎเชพเชฐเชพ เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ... [TBD].
เชธเซเชฐเซเชธ: www.habr.com