On Sat, Feb 20, 2021 at 03:24:39PM +0800, Wu Fengguang wrote:
这样描述清楚多了。
- check_src_lv()
- {
- lvdisplay $1 > /dev/null || exit 1
exit 1 => exit
一般使用原始命令的exit code
ok
- }
- clone_boot_lv_from_src_lv()
- {
- src_lv=$1
- boot_lv=$2
src_lv == boot_lv 的情况下,需要跳过,直接返回
ok
- lvremove -f ${boot_lv}
-f => --force 描述更清楚点
ok
- lvcreate ${boot_lv} from ${src_lv} || exit 1
from => --snapshot 这里可以使用原始命令选项,不长,而且更清晰明了
ok
- }
- no_save_no_use()
- {
- src_lv="/dev/mapper/os-openeuler_aarch64_20.03_${timestamp}"
- boot_lv="/dev/mapper/os-openeuler_aarch64_20.03"
- copy_nfsroot_to_src_lv ${src_lv}
copy_nfsroot_to_src_lv => rsync_to
ok
- clone_boot_lv_from_src_lv ${src_lv} ${boot_lv}
clone_boot_lv_from_src_lv => snapshot_to
ok
- boot_from_lv ${boot_lv}
- }
- only_save()
- {
- src_lv="/dev/mapper/os-openeuler_aarch64_20.03_${timestamp}"
- boot_lv="/dev/mapper/os-openeuler_aarch64_20.03_${save_root_partition}"
- copy_nfsroot_to_src_lv ${src_lv}
- clone_boot_lv_from_src_lv ${src_lv} ${boot_lv}
- boot_from_lv ${boot_lv}
- }
- only_use()
- {
- src_lv="/dev/mapper/os-openeuler_aarch64_20.03_${use_root_partition}"
- boot_lv="/dev/mapper/os-openeuler_aarch64_20.03"
- check_src_lv ${src_lv}
- clone_boot_lv_from_src_lv ${src_lv} ${boot_lv}
- boot_from_lv ${boot_lv}
- }
- save_and_use()
- {
- src_lv="/dev/mapper/os-openeuler_aarch64_20.03_${use_root_partition}"
- boot_lv="/dev/mapper/os-openeuler_aarch64_20.03_${save_root_partition}"
- check_src_lv ${src_lv}
- clone_boot_lv_from_src_lv ${src_lv} ${boot_lv}
- boot_from_lv ${boot_lv}
- }
- main()
- {
- [ -z ${use_root_partition} ] && [ -z ${save_root_partition} ] && no_save_no_use
- [ -z ${use_root_partition} ] && [ -n ${save_root_partition} ] && only_save
- [ -n ${use_root_partition} ] && [ -z ${save_root_partition} ] && only_use
- [ -n ${use_root_partition} ] && [ -n ${save_root_partition} ] && save_and_use
clone_boot_lv_from_src_lv ${src_lv} ${boot_lv} boot_lv ${boot_lv}
都是公共行为,可以放这里来
ok
-------- Thanks Yu Chuan
- }
- main()
- execute the job
-- 2.23.0