Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
backupninja
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor 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
lyz
backupninja
Commits
4af05505
Commit
4af05505
authored
17 years ago
by
micah
Browse files
Options
Downloads
Patches
Plain Diff
add wget handler, add released tag to the changelog and setup changelog for next release
parent
cb2de66f
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
ChangeLog
+9
-2
9 additions, 2 deletions
ChangeLog
handlers/wget
+220
-0
220 additions, 0 deletions
handlers/wget
with
229 additions
and
2 deletions
ChangeLog
+
9
−
2
View file @
4af05505
version 0.9.5 -- unreleased
version 0.9.6 -- unreleased
backupninja changes
handler changes
wget:
. New handler from rhatto designed to incrementally pull content from
a website to a local folder, based on the rsync handler
version 0.9.5 -- December 2, 2007
backupninja changes
. Fixed checks on configuration files permissions, since the patch
applied to fix #370396 broke this, especially for configuration files
...
...
@@ -83,7 +91,6 @@ version 0.9.5 -- unreleased
changed spaces to tabs in Makefile.am
updated redhat spec file (thanks Adam Monsen)
version 0.9.4 -- October 6th, 2006
backupninja changes
. Fixed bug in toint(), and thus isnow(), which caused it
...
...
This diff is collapsed.
Click to expand it.
handlers/wget
0 → 100644
+
220
−
0
View file @
4af05505
#
# backupninja handler to do incremental backups using
# wget and hardlinks, based on rsync handler
#
# feedback: rhatto at riseup.net | gpl
#
# Config file options
# -------------------
#
# [general]
# log = wget log file
# partition = partition where the backup lives
# fscheck = set to 1 if fsck should run on $partition after the backup is made
# read_only = set to 1 if $partition is mounted read-only
# mountpoint = backup partition mountpoint or backup main folder
# backupdir = folder relative do $mountpoint where the backup should be stored
# days = number of backup increments (min = 5)
# lockfile = lockfile to be kept during backup execution
# nicelevel = wget command nice level
# enable_mv_timestamp_bug = set to "yes" if your system isnt handling timestamps correctly
# tmp = temp folder
#
# [source]
# wget = wget program
# wget_options = wget command options
# url = remote data url
# bandwidthlimit = set a badnwidth limit in kbps (remote source only)
#
# [destination]
# folder = local folder
#
# You can also specify some system comands if you don't want the default system values:
#
# [system]
# rm = rm command
# cp = cp command
# touch = touch command
# mv = mv command
# fsck = fsck command
#
# TODO: Daily, weekly and monthly snapshot rotation (like the one present on maildir handler).
#
# config file evaluation
setsection system
getconf rm rm
getconf cp cp
getconf touch touch
getconf mv mv
getconf fsck fsck
setsection general
getconf log /var/log/backup/wget.log
getconf partition
getconf fscheck
getconf read_only
getconf mountpoint
getconf backupdir
getconf rotate
getconf days
getconf lockfile
getconf nicelevel 0
getconf enable_mv_timestamp_bug no
getconf tmp /tmp
setsection source
getconf wget wget
getconf wget_options
getconf url
getconf bandwidthlimit
setsection destination
getconf folder
# function definitions
function rotate {
if [[ "$2" < 4 ]]; then
error "Rotate: minimum of 4 rotations"
exit 1
fi
if [ -d $1.$2 ]; then
$nice $mv /$1.$2 /$1.tmp
fi
for ((n=`echo "$2 - 1" | bc`; n >= 0; n--)); do
if [ -d $1.$n ]; then
dest=`echo "$n + 1" | bc`
$nice $mv /$1.$n /$1.$dest
$touch /$1.$dest
fi
done
if [ -d $1.tmp ]; then
$nice $mv /$1.tmp /$1.0
fi
if [ -d $1.1 ]; then
$nice $cp -alf /$1.1/. /$1.0
fi
}
function move_files {
ref=$tmp/makesnapshot-mymv-$$;
$touch -r $1 $ref;
$mv $1 $2;
$touch -r $ref $2;
$rm $ref;
}
backupdir="$mountpoint/$backupdir"
# does $backupdir exists?
if [ ! -d "$backupdir" ]; then
error "Backupdir $backupdir does not exist"
exit 1
fi
# setup number of increments
if [ -z "$days" ]; then
keep="4"
else
keep="`echo $days - 1 | bc -l`"
fi
# lockfile setup
if [ ! -z "$lockfile" ]; then
$touch $lockfile || warning "Could not create lockfile $lockfile"
fi
# nicelevel setup
if [ ! -z "$nicelevel" ]; then
nice="nice -n $nicelevel"
else
nice=""
fi
# set mv procedure
if [ $enable_mv_timestamp_bug == "yes" ]; then
mv=move_files
fi
# set excludes
for path in $exclude; do
EXCLUDES="$EXCLUDES --exclude=$path"
done
echo "Starting backup at `date`" >> $log
# mount backup destination folder as read-write
if [ "$read_only" == "1" ] || [ "$read_only" == "yes" ]; then
if [ -d "$mountpoint" ]; then
mount -o remount,rw $mountpoint
if (($?)); then
error "Could not mount $mountpoint"
exit 1
fi
fi
fi
# the backup procedure
if [ ! -d "$backupdir/$folder/$folder.0" ]; then
mkdir -p $backupdir/$folder/$folder.0
fi
info "Rotating $backupdir/$folder/$folder..."
echo "Rotating $backupdir/$folder/$folder..." >> $log
rotate $backupdir/$folder/$folder $keep
info "Wget'ing $SECTION on $backupdir/$folder/$folder.0..."
if [ ! -z "$badnwidth" ]; then
limit_rate="--limit-rate=$badnwidth""k"
fi
cd $backupdir/$folder/$folder.0
wget $wget_options $limit-rate -r -c -N -e robots=off $url
cd -
$touch $backupdir/$folder/$folder.0
# remount backup destination as read-only
if [ "$read_only" == "1" ] || [ "$read_only" == "yes" ]; then
mount -o remount,ro $mountpoint
fi
# check partition for errors
if [ "$fscheck" == "1" ] || [ "$fscheck" == "yes" ]; then
umount $mountpoint
if (($?)); then
warning "Could not umount $mountpoint to run fsck"
else
$nice $fsck -v -y $partition >> $log
mount $mountpoint
fi
fi
# removes the lockfile
if [ ! -z "$lockfile" ]; then
$rm $lockfile || warning "Could not remove lockfile $lockfile"
fi
echo "Finnishing backup at `date`" >> $log
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