ad.backup.zfs
Yohn Y.
2026-05-17
0:00bb6c16b4b6
Go to Latest
ad.backup.zfs/bin/zfsbackup.cron.sh
.. init
. По сути архивация имеющегося самопиского решания для памяти.
2 # devel.a0fs.net: zfsbackup.bin.cron - v0.1 by awgur
4 # Файл должен запускаться через crond. Здесь содержится вся логика,
5 # выполняющая функции резервирования
7 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
10 dir_root="$(dirname
"$(dirname
"$(readlink
-f
"$0")")")"
11 dir_lib="${dir_root}/lib" # Директория с библиотеками
13 arg_timeMark="$(date
'+%Y%m%d-%H%M%S')"
14 arg_timeDate="$(date
'+%Y%m%d')"
15 arg_timeHour="$(date
'+%H')"
20 .
"${dir_lib}/main.sh"
23 # Исполнительная процедура. Содержит логику работы с определённым набором данных ZFS
24 # Выполняя функции обработки
26 local lastSnap
# Последняя резервная копия
27 local cnt
# Сконфигурированое количество резервных копий
28 local cnt_default
# Количество резервных копий по умолчанию
29 local backupType
# Тип резервного копирования
30 local curSnap
# Имя текущего снимка
31 local zfs_ret
# Код возврата комманды zfs
32 local lp="cron.worker():" # префикс для системы логирования,
33 # выносим отдельно, так как логов будем писать много
38 if zfs_isBackup
"$ds" ; then
39 log
"$lp Working with '$ds'"
40 lastSnap=$(zfs_getLastSnap
"$ds")
41 if !
svc_date_isToday
"${lastSnap}" ; then
42 backupType="${sys_backupType_d}"
43 cnt_default="${sys_backupCnt_d}"
44 elif !
svc_date_isThisHour
"${lastSnap}" ; then
45 backupType="${sys_backupType_h}"
46 cnt_default="${sys_backupCnt_h}"
51 cnt=$(zfs_getProp
"$ds" "${backupType}")
52 if !
[ "$cnt" ] ; then
56 if [ "$cnt" -eq
0 -a
"${backupType}" = "${sys_backupType_d}" ] ; then
57 backupType="${sys_backupType_h}"
58 cnt=$(zfs_getProp
"$ds" "${sys_backupType_h}")
59 if !
[ "$cnt" ] ; then
60 cnt="${sys_backupCnt_h}"
65 if [ "$cnt" -gt
0 ]; then
66 curSnap="$(svc_makeName
"$ds" "${backupType}" "${sys_date_now}")"
67 log
"$lp Make snapshot '$curSnap'"
69 zfs
snapshot
"${curSnap}" 2>
&1
71 if [ "$zfs_ret" -eq
0 ] ; then
72 zfs_clean
"$ds" "${backupType}" "${cnt}"
74 log_err
"$lp Make snapshot '$curSnap' fail with return code '$zfs_ret'"
81 zfs
list
-Ho
name
| while read fs
; do worker
"$fs"; done