Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etersoft-admin-essentials
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
etersoft-admin-essentials
Commits
eed34442
Commit
eed34442
authored
Jul 17, 2015
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
eterbackup: split repack code
parent
319831b2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
24 deletions
+49
-24
eterbackup
backup/eterbackup/eterbackup
+49
-24
No files found.
backup/eterbackup/eterbackup
View file @
eed34442
...
...
@@ -68,25 +68,46 @@ while read subdir ; do
# FIXME: copy dir permissions
mkdir
-p
"
$DUMPDIR
/
$reldir
"
case
$COMMAND
in
update
)
# workaround for correct internal path
cd
$BACKUPDIR
/
$reldir
/..
||
exit
# packing
zpaq a
"
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq"
"
$bdir
"
cd
-
>
/dev/null
;;
repack
)
# TODO: тут нужно сделать другой обход каталогов (готовых)
# TODO: выделить в отдельную функцию
# TODO: check it
zpaq extract
"
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq"
-to
"
$DUMPDIR
/
$reldir
/../
$bdir
.
$STZ
.zpaq"
||
exit
rm
-f
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq
mv
$DUMPDIR
/
$reldir
/../
$bdir
.
$STZ
.zpaq
$DUMPDIR
/
$reldir
/
$bdir
.
$STZ
.zpaq
;;
*
)
exit
1
esac
# workaround for correct internal path
cd
$BACKUPDIR
/
$reldir
/..
||
exit
# packing
echo
echo
"Packing
$bdir
..."
zpaq a
"
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq"
"
$bdir
"
cd
-
>
/dev/null
done
}
repack_dump
()
{
# Получаем список каталогов, которые мы хотим превратить в файлы
find
$BACKUPDIR
-depth
-maxdepth
$DEPTH
-mindepth
$DEPTH
-type
d |
\
while
read
subdir
;
do
# TODO: не забыть файлы в основном каталоге
# TODO: неизвестно, как сделать нерекурсивным
# /var/log/long/something -> long/something
reldir
=
"
${
subdir
/
$BACKUPDIR
\//
}
"
bdir
=
$(
basename
"
$reldir
"
)
# TODO: improve
if
[
"
$bdir
"
=
"
$EXCLUDEDIR
"
]
;
then
echo
"Skip excluded
$bdir
"
continue
fi
# TODO: удалённые каталоги будут незамечены и останутся.
# Создавать новый слой, копируя со старого, и оставляя тот старыми датами?
# FIXME: copy dir permissions
mkdir
-p
"
$DUMPDIR
/
$reldir
"
# TODO: тут нужно сделать другой обход каталогов (готовых)
# TODO: выделить в отдельную функцию
# TODO: check it
zpaq purge
"
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq"
-to
"
$DUMPDIR
/
$reldir
/../
$bdir
.
$STZ
.zpaq"
||
exit
rm
-f
$DUMPDIR
/
$reldir
/
$bdir
.
$STN
.zpaq
mv
$DUMPDIR
/
$reldir
/../
$bdir
.
$STZ
.zpaq
$DUMPDIR
/
$reldir
/
$bdir
.
$STZ
.zpaq
done
}
...
...
@@ -124,26 +145,31 @@ if [ "$1" = "--exclude" ] ; then
fi
case
$COMMAND
in
update
|repack
)
update
)
# from
BACKUPDIR
=
$(
realpath
-e
"
$1
"
)
||
exit
# to
DUMPDIR
=
$(
realpath
-m
"
$2
"
)
update_dump
exit
;;
repack
)
# from
BACKUPDIR
=
$(
realpath
-e
"
$1
"
)
||
exit
# to
DUMPDIR
=
$(
realpath
-m
"
$2
"
)
repack_dump
;;
list
)
# from
BACKUPDIR
=
$(
realpath
-e
"
$1
"
)
||
exit
list_dirs
exit
;;
extract
)
DUMPDIR
=
$(
realpath
-e
"
$1
"
)
||
exit
DESTDIR
=
$(
realpath
-m
"
$2
"
)
/
$(
basename
$DUMPDIR
)
extract_dump
exit
;;
-h
|
--help
)
echo
$DESCR
...
...
@@ -160,7 +186,6 @@ case $COMMAND in
echo
echo
"Extract backup:"
echo
"
$
eterbackup extract /path/backup /path/to"
exit
;;
*
)
echo
"
$DESCR
"
>
&2
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment