Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
iml-backup
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
IML Open Source
iml-backup
Commits
2d431342
Commit
2d431342
authored
3 years ago
by
Hahn Axel (hahn)
Browse files
Options
Downloads
Patches
Plain Diff
add param prune and help in transfer.sh
parent
c0cb0094
No related branches found
No related tags found
1 merge request
!18
add param prune and help in transfer.sh
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+58
-2
58 additions, 2 deletions
README.md
transfer.sh
+58
-26
58 additions, 26 deletions
transfer.sh
with
116 additions
and
28 deletions
README.md
+
58
−
2
View file @
2d431342
...
@@ -49,7 +49,7 @@ RESTIC
...
@@ -49,7 +49,7 @@ RESTIC
*
encrypts data
*
encrypts data
*
deduplicates files
*
deduplicates files
*
delete backups by rules to keep a count of hourly, daily, weekly, mothly, yearly backups
*
delete backups by rules to keep a count of hourly, daily, weekly, mothly, yearly backups
*
several backup targets (we currently use sftp:// http:// and file://)
*
several backup targets (we currently use sftp:// http
s
:// and file://)
### control simoultanous backups ###
### control simoultanous backups ###
...
@@ -186,10 +186,66 @@ TODO: advanced stuff ... There is a possibility for directory based include and
...
@@ -186,10 +186,66 @@ TODO: advanced stuff ... There is a possibility for directory based include and
### Setup the target ###
### Setup the target ###
incl. test transfer to storage
Edit
**jobs/transfer.job**
. This file handles the transfer of local directories
to a backup target. You find comments in the config.
By default the backp tool "restic" is activated (and recommended). You can switch to duplicity
if you feel familiar with it.
`bin = restic`
Create a repository base directory with the wanted protocol. This step has to be done
once for all systems you want to backup. The IML Backup will create a subdirectory
with the hostname for its backups. Set your target in storage:
`storage = sftp://backup@storage.example.com//netshare/backup`
## Production usage ##
## Production usage ##
Edit
**jobs/transfer.job**
.
Set a password to encrypt local data with it. Each system should have its own password.
Use a long password - i.e. 128 characters.
Save your password list - if you loose it you cannot restore data anymore.
`passphrase = EnterYourSecretHere`
Change the restore path if needed. A restore does not overwrite the current files.
`restore-path = /restore`
Then have a look to the section with variables that have the prefix of bin = ... (restic_... or duplicity_...).
The index files are stored in $HOME. Because /root partition could be to small for
systems with many files (fileserver) you can put the index somewhere else:
`*_cachedir = ...`
With this loglevel you get a list of new or changed files in the log:
`restic_verbose = 2`
You can set a tag that is set for backups by script.
`restic_tag = imlbackup`
The mount of backup sets is a restic feature. After mounting a backup there
you can browse via filesystem through backups and timestamps.
`restic_mountpoint = /mnt/restore`
Define how many backups you wanto to keep. After the backup of a directory
the cleanup strategy will be applied.
```
# prune
restic_keep-hourly = 100
restic_keep-daily = 90
restic_keep-weekly = 12
restic_keep-monthly = 12
restic_keep-yearly = 10
```
### setup backup times ###
### setup backup times ###
### Create a cronjob ###
### Create a cronjob ###
...
...
This diff is collapsed.
Click to expand it.
transfer.sh
+
58
−
26
View file @
2d431342
...
@@ -7,6 +7,8 @@
...
@@ -7,6 +7,8 @@
# transfer.sh - incremental backup
# transfer.sh - incremental backup
# transfer.sh full - full backup
# transfer.sh full - full backup
# transfer.sh dumps - transfer local dumps only
# transfer.sh dumps - transfer local dumps only
# transfer.sh prune - cleanup backup data
# transfer.sh help - show help
#
#
# --------------------------------------------------------------------------------
# --------------------------------------------------------------------------------
# ah - Axel Hahn <axel.hahn@iml.unibe.ch>
# ah - Axel Hahn <axel.hahn@iml.unibe.ch>
...
@@ -26,6 +28,7 @@
...
@@ -26,6 +28,7 @@
# 2020-02-25 ah,ds, v1.11 fix test -z with non existing vars; show final backup status
# 2020-02-25 ah,ds, v1.11 fix test -z with non existing vars; show final backup status
# 2021-01-29 ah,ds, v1.12 abort on empty passphrase
# 2021-01-29 ah,ds, v1.12 abort on empty passphrase
# 2021-05-19 ah,ds, v2.0 plugin driven to support multiple backup tools (duplicity + restic)
# 2021-05-19 ah,ds, v2.0 plugin driven to support multiple backup tools (duplicity + restic)
# 2021-12-02 ah v2.1 added parameter "prune" to cleanup only
# ================================================================================
# ================================================================================
...
@@ -38,7 +41,10 @@
...
@@ -38,7 +41,10 @@
.
`
dirname
$0
`
/jobhelper.sh
.
`
dirname
$0
`
/jobhelper.sh
.
`
dirname
$0
`
/inc_bash.sh
.
`
dirname
$0
`
/inc_bash.sh
typeset
-i
rc
=
0
typeset
-i
rc
=
0
typeset
-i
doBackup
=
1
typeset
-i
doPrune
=
1
if
[
!
-r
"
${
DIRFILE
}
"
-o
!
-r
"
${
STORAGEFILE
}
"
]
;
then
if
[
!
-r
"
${
DIRFILE
}
"
-o
!
-r
"
${
STORAGEFILE
}
"
]
;
then
echo
"SKIP backup of local files - one of the files is not readable (no error):
${
DIRFILE
}
|
${
STORAGEFILE
}
"
echo
"SKIP backup of local files - one of the files is not readable (no error):
${
DIRFILE
}
|
${
STORAGEFILE
}
"
exit
0
exit
0
...
@@ -104,10 +110,29 @@
...
@@ -104,10 +110,29 @@
# MAIN
# MAIN
# --------------------------------------------------------------------------------
# --------------------------------------------------------------------------------
if
[
"
$1
"
=
"help"
-o
"
$1
"
=
"-h"
-o
"
$1
"
=
"-?"
]
;
then
echo
"HELP:
Transfer local files to a backup target.
target
${
STORAGE_BASEDIR
}
backup tool
$STORAGE_BIN
PARAMETERS:
transfer.sh - incremental backup
transfer.sh full - full backup
transfer.sh dumps - transfer local dumps only
transfer.sh prune - cleanup backup data only (no backup)
transfer.sh help - show this help (works with -h and -? too)
"
exit
0
fi
if
[
"
$1
"
=
"prune"
]
;
then
doBackup
=
0
fi
h1
`
date
`
TRANSFER LOCAL DATA TO STORAGE |
tee
-a
$transferlog
h1
`
date
`
TRANSFER LOCAL DATA TO STORAGE |
tee
-a
$transferlog
echo
"METHOD :
$METHOD
"
|
tee
-a
$transferlog
echo
"METHOD :
$METHOD
"
|
tee
-a
$transferlog
echo
"TARGET :
${
STORAGE_BASEDIR
}
"
|
tee
-a
$transferlog
echo
"TARGET :
${
STORAGE_BASEDIR
}
"
|
tee
-a
$transferlog
echo
"REGISTER :
${
STORAGE_REGISTER
}
"
|
tee
-a
$transferlog
echo
"REGISTER :
${
STORAGE_REGISTER
}
"
|
tee
-a
$transferlog
...
@@ -269,36 +294,43 @@
...
@@ -269,36 +294,43 @@
# --- backup
# --- backup
h3
"
`
date
`
Backup
${
mydir
}
"
h3
"
`
date
`
Backup
${
mydir
}
"
if
[
$doBackup
-eq
0
]
;
then
sCmd
=
"
$(
t_backupDirGetCmdBackup
)
"
echo
"SKIP backup"
echo
"what:
${
mydir
}
"
echo
"target:
${
sTarget
}
"
echo
"command:
$sCmd
"
echo
color cmd
$sCmd
fetchrc
color reset
echo
t_rcCheckBackup
$myrc
if
[
$myrc
-ne
0
]
;
then
color error
echo
DIR ERROR
${
mydir
}
rc
=
$myrc
during file transfer
else
else
color ok
sCmd
=
"
$(
t_backupDirGetCmdBackup
)
"
echo
DIR OK
${
mydir
}
was successful.
echo
"what:
${
mydir
}
"
echo
"target:
${
sTarget
}
"
echo
"command:
$sCmd
"
echo
color cmd
$sCmd
fetchrc
color reset
echo
t_rcCheckBackup
$myrc
if
[
$myrc
-ne
0
]
;
then
color error
echo
DIR ERROR
${
mydir
}
rc
=
$myrc
during file transfer
else
color ok
echo
DIR OK
${
mydir
}
was successful.
fi
color reset
fi
fi
color reset
echo
echo
# --- post action
# --- post action
h3
"
`
date
`
POST backup task for
${
mydir
}
"
h3
"
`
date
`
POST backup task for
${
mydir
}
"
t_backupDirDoPostTasks
if
[
$doPrune
-eq
0
]
;
then
echo
echo
"SKIP prune"
else
t_backupDirDoPostTasks
echo
fi
echo
echo
else
else
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment