Add a daily period script to back up /var/db/pkg
The final product contains work from the originator, and Florent Thoumie <florent.thoumie@gmail.com>. The final product contains considerable re-working by me, so all responsibility for bugs rests under my pointy hat. PR: ports/145957 Submitted by: Eitan Adler <EitanAdlerList@gmail.com>
This commit is contained in:
parent
f8b1bf190c
commit
22933fac2f
@ -74,6 +74,10 @@ daily_backup_passwd_enable="YES" # Backup passwd & group
|
||||
# 210.backup-aliases
|
||||
daily_backup_aliases_enable="YES" # Backup mail aliases
|
||||
|
||||
# 220.backup-pkgdb
|
||||
daily_backup_pkgdb_enable="YES" # Backup /var/db/pkg
|
||||
daily_backup_pkgdb_dir="/var/backups"
|
||||
|
||||
# 300.calendar
|
||||
daily_calendar_enable="NO" # Run calendar -a
|
||||
|
||||
|
50
etc/periodic/daily/220.backup-pkgdb
Executable file
50
etc/periodic/daily/220.backup-pkgdb
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# If there is a global system configuration file, suck it in.
|
||||
#
|
||||
if [ -r /etc/defaults/periodic.conf ]
|
||||
then
|
||||
. /etc/defaults/periodic.conf
|
||||
source_periodic_confs
|
||||
fi
|
||||
|
||||
rc=0
|
||||
|
||||
case "$daily_backup_pkgdb_enable" in
|
||||
[Yy][Ee][Ss])
|
||||
bak="${daily_backup_pkgdb_dir:-/var/backups}"
|
||||
bak_file="${bak}/pkgdb.bak.tbz"
|
||||
|
||||
pkg_dbdir=`make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null`
|
||||
|
||||
if [ ! -d "$bak" ]
|
||||
then
|
||||
install -d -o root -g wheel -m 750 $bak || {
|
||||
echo '$daily_backup_pkgdb_enable is enabled but' \
|
||||
"$daily_backup_pkgdb_dbdir doesn't exist" ;
|
||||
exit 2 ; }
|
||||
fi
|
||||
|
||||
echo ''
|
||||
echo 'Backing up package db directory:'
|
||||
|
||||
new_bak_file=`mktemp ${bak_file}-XXXXX`
|
||||
|
||||
if tar -cjf "${new_bak_file}" "$pkg_dbdir"; then
|
||||
chmod 644 "${new_bak_file}"
|
||||
|
||||
if [ -e "${bak_file}.2" -a -e "${bak_file}" ]; then
|
||||
unlink "${bak_file}.2"
|
||||
mv "${bak_file}" "${bak_file}.2"
|
||||
fi
|
||||
[ -e "${bak_file}" ] && mv "${bak_file}" "${bak_file}.2"
|
||||
mv "${new_bak_file}" "${bak_file}"
|
||||
else
|
||||
rc=3
|
||||
fi ;;
|
||||
esac
|
||||
|
||||
exit $rc
|
Loading…
Reference in New Issue
Block a user