From d461e446098eb2723f526c06882fad63aa7ed634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20S=C3=89RIE?= Date: Tue, 4 Apr 2017 09:47:47 +0200 Subject: [PATCH 1/8] Another method with gzip directly piped for pg_dumpall. --- docs/zzz_evobackup | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/zzz_evobackup b/docs/zzz_evobackup index 099beae..3706aaf 100755 --- a/docs/zzz_evobackup +++ b/docs/zzz_evobackup @@ -97,6 +97,10 @@ mkdir -p -m 700 /home/backup ## example with pg_dumpall (warning: you need space in ~postgres) # su - postgres -c "pg_dumpall > ~/pg.dump.bak" # mv ~postgres/pg.dump.bak /home/backup/ +## another method with gzip directly piped +# cd /var/lib/postgresql +# sudo -u postgres pg_dumpall | gzip > /home/backup/pg.dump.bak.gz +# cd - ## example with all tables from MYBASE excepts TABLE1 and TABLE2 # pg_dump -p 5432 -h 127.0.0.1 -U USER --clean -F t --inserts -f /home/backup/pg-backup.tar -t 'TABLE1' -t 'TABLE2' MYBASE From b7fedb560933293dec138e1fa784ce28412afbc4 Mon Sep 17 00:00:00 2001 From: Daniel Jakots Date: Mon, 15 May 2017 13:20:44 -0400 Subject: [PATCH 2/8] Use English for var names --- docs/zzz_evobackup | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/zzz_evobackup b/docs/zzz_evobackup index 3706aaf..69f4e57 100755 --- a/docs/zzz_evobackup +++ b/docs/zzz_evobackup @@ -33,7 +33,7 @@ trap "rm -f $PIDFILE" EXIT SSH_PORT=2XXX # choose "linux" or "bsd" -SYSTEME=$(uname | tr '[:upper:]' '[:lower:]') +SYSTEM=$(uname | tr '[:upper:]' '[:lower:]') # email adress for notifications MAIL=jdoe@example.com @@ -163,7 +163,7 @@ done ## Dump process with ps ps aux >/home/backup/ps.out -if [ $SYSTEME = "linux" ]; then +if [ $SYSTEM = "linux" ]; then ## Dump network connections with netstat netstat -taupen >/home/backup/netstat.out @@ -181,9 +181,9 @@ HOSTNAME=$(hostname) DATE=$(/bin/date +"%d-%m-%Y") -DEBUT=$(/bin/date +"%d-%m-%Y ; %H:%M") +BEGINNING=$(/bin/date +"%d-%m-%Y ; %H:%M") -if [ $SYSTEME = "linux" ]; then +if [ $SYSTEM = "linux" ]; then rep="/bin /boot /lib /opt /sbin /usr" else rep="/bsd /bin /boot /sbin /usr" @@ -228,12 +228,12 @@ rsync -avzh --stats --delete --delete-excluded --force --ignore-errors --partial root@$SRV:/var/backup/ \ | tail -30 >> /var/log/evobackup.log -FIN=$(/bin/date +"%d-%m-%Y ; %H:%M") +END=$(/bin/date +"%d-%m-%Y ; %H:%M") -echo "EvoBackup - $HOSTNAME - START $DEBUT" \ +echo "EvoBackup - $HOSTNAME - START $BEGINNING" \ >> /var/log/evobackup.log -echo "EvoBackup - $HOSTNAME - STOP $FIN" \ +echo "EvoBackup - $HOSTNAME - STOP $END" \ >> /var/log/evobackup.log tail -10 /var/log/evobackup.log | \ From cc4bee52bdee28e7ce170c8582e19b2b53a5168a Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Wed, 17 May 2017 16:20:48 +0200 Subject: [PATCH 3/8] Btrfs snapshot (incs) are now readonly --- bkctld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bkctld b/bkctld index e3e0b34..51bd695 100755 --- a/bkctld +++ b/bkctld @@ -431,7 +431,7 @@ sub_inc() { if [ ! -d "${inc}" ]; then start=$(date +"%H:%M:%S") if ( check_btrfs ); then - /sbin/btrfs subvolume snapshot ${JAILDIR}/$jail $inc > /dev/null + /sbin/btrfs subvolume snapshot -r ${JAILDIR}/$jail $inc > /dev/null else cp -alx ${JAILDIR}/${jail}/ $inc fi From 1a777afb5fb3ca253e20324d76c9ea08710afa42 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Wed, 17 May 2017 16:44:47 +0200 Subject: [PATCH 4/8] Add chroot dependency to README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index e6a897f..ecdd913 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,14 @@ apt update apt install bkctld ~~~ +### Chroot dependency + +Chroot jail use part of this package + +~~~ +apt install bash coreutils sed dash mount rsync openssh-server openssh-sftp-server libc6-i386 libc6 +~~~ + #### Install cron for incremental backup Edit root crontab From 641d400afac628374bd377222bf2797dcf4c58b8 Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Wed, 12 Jul 2017 01:19:22 +0200 Subject: [PATCH 5/8] Improve packages list backup --- docs/zzz_evobackup | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/zzz_evobackup b/docs/zzz_evobackup index 69f4e57..b502433 100755 --- a/docs/zzz_evobackup +++ b/docs/zzz_evobackup @@ -169,6 +169,7 @@ if [ $SYSTEM = "linux" ]; then ## List Debian packages dpkg -l >/home/backup/packages + dpkg --get-selections >/home/backup/packages.getselections else ## Dump network connections with netstat netstat -finet -atn >/home/backup/netstat.out From beecd93c2b012063de428624c929ef07a3237494 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Thu, 13 Jul 2017 16:12:39 +0200 Subject: [PATCH 6/8] Fix btrfs support/detection --- bkctld | 54 ++++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/bkctld b/bkctld index 51bd695..00ee591 100755 --- a/bkctld +++ b/bkctld @@ -58,22 +58,6 @@ check_jail_on() { echo $status } -check_btrfs() { - grep $(dirname $JAILDIR) /etc/fstab|grep -q btrfs - if [[ $? -eq 0 ]]; then - exit 0 - fi - grep $JAILDIR /etc/fstab|grep -q btrfs - if [[ $? -ne 0 ]]; then - exit 1 - fi - grep $INCDIR /etc/fstab|grep -q btrfs - if [[ $? -ne 0 ]]; then - exit 1 - fi - exit 0 -} - ## get functions : get info on jail get_port() { @@ -227,8 +211,10 @@ sub_init() { exit 1 fi - echo "Create jail $jail :" - if ( check_btrfs); then + echo "Create jail $jail :" + rootdir_inode=$(stat --format=%i $(dirname $JAILDIR)) + jaildir_inode=$(stat --format=%i $JAILDIR) + if [ "$rootdir_inode" -eq 256 ] || [ "$jaildir_inode" -eq 256 ]; then /sbin/btrfs subvolume create ${JAILDIR}/${jail} else mkdir -p ${JAILDIR}/${jail} @@ -274,17 +260,23 @@ sub_remove() { log stop $jail fi echo "Delete jail $jail ..." - if ( check_btrfs ); then - rm -f ${CONFDIR}/${jail} - if [ -d ${INCDIR}/${jail} ]; then - /sbin/btrfs subvolume delete ${INCDIR}/${jail}/* - rmdir ${INCDIR}/${jail} - fi + rm -f ${CONFDIR}/${jail} + jail_inode=$(stat --format=%i ${JAILDIR}/${jail}) + if [ "$jail_inode" -eq 256 ]; then /sbin/btrfs subvolume delete ${JAILDIR}/${jail} else - rm -f ${CONFDIR}/${jail} rm -rf ${JAILDIR}/${jail} - echo "You need to purge ${INCDIR}/${jail} manually !" + fi + if [ -d ${INCDIR}/${jail} ]; then + for inc in $(ls ${INCDIR}/${jail}); do + inc_inode=$(stat --format=%i ${INCDIR}/${jail}/$inc) + if [ "$inc_inode" -eq 256 ]; then + /sbin/btrfs subvolume delete ${INCDIR}/${jail}/${inc} + else + echo "You need to purge ${INCDIR}/${jail}/$inc manually !" >&2 + fi + done + rmdir --ignore-fail-on-non-empty ${INCDIR}/${jail} fi set_firewall $jail echo "...OK" @@ -430,8 +422,9 @@ sub_inc() { mkdir -p ${INCDIR}/${jail} if [ ! -d "${inc}" ]; then start=$(date +"%H:%M:%S") - if ( check_btrfs ); then - /sbin/btrfs subvolume snapshot -r ${JAILDIR}/$jail $inc > /dev/null + jail_inode=$(stat --format=%i ${JAILDIR}/${jail}) + if [ "$jail_inode" -eq 256 ]; then + /sbin/btrfs subvolume snapshot -r ${JAILDIR}/${jail} $inc > /dev/null else cp -alx ${JAILDIR}/${jail}/ $inc fi @@ -484,8 +477,9 @@ sub_rm() { #for j in $( ls ${INCDIR}/$jail ); do for j in $( grep -v -f <(echo "${keep}") <(echo "${incs}") ); do start=$(date +"%H:%M:%S") - if ( check_btrfs ); then - /sbin/btrfs subvolume delete ${INCDIR}/$jail/$j >/dev/null + inc_inode=$(stat --format=%i ${INCDIR}/${jail}/${j}) + if [ "$inc_inode" -eq 256 ]; then + /sbin/btrfs subvolume delete ${INCDIR}/${jail}/${j} >/dev/null else cd ${INCDIR}/$jail rsync -a --delete $empty $j* From e82340943b282b607378140b8c3dc5482b9cf58d Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Thu, 13 Jul 2017 16:22:45 +0200 Subject: [PATCH 7/8] Fix if [[ -> if [ --- bkctld | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bkctld b/bkctld index 00ee591..e8b56c0 100755 --- a/bkctld +++ b/bkctld @@ -122,7 +122,7 @@ set_key() { set_ip() { jail=$1 ip=$2 - if [[ $ip = "all" || $ip = "0.0.0.0/0" ]]; then + if [ "$ip" = "all" ] || [ "$ip" = "0.0.0.0/0" ]; then ips="0.0.0.0/0" else ips=$(get_ip $jail) @@ -545,22 +545,22 @@ main() { log $subcommand ;; "init") - if [[ -n "${jail}" ]]; then + if [ -n "${jail}" ]; then log $subcommand $jail else usage fi ;; "key" | "port" | "ip") - if [[ -n "${jail}" ]]; then + if [ -n "${jail}" ]; then log params $jail $subcommand $option else usage fi ;; "start" | "stop" | "reload" | "restart" | "sync" | "update" | "remove") - if [[ -n "${jail}" ]]; then - if [[ "${jail}" = "all" ]]; then + if [ -n "${jail}" ]; then + if [ "${jail}" = "all" ]; then for jail in $(ls $JAILDIR); do case $subcommand in "start") @@ -599,7 +599,7 @@ main() { fi ;; "status") - if [[ -z "${jail}" ]]; then + if [ -z "${jail}" ]; then for jail in $(ls $JAILDIR); do sub_$subcommand $jail done From a4e3b72373dfec79e48ee5cf9ea97a8e1365442a Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Mon, 17 Jul 2017 11:36:11 +0200 Subject: [PATCH 8/8] Bump version to 1.3 --- docs/bkctld.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bkctld.8 b/docs/bkctld.8 index c66e68a..be26cf4 100644 --- a/docs/bkctld.8 +++ b/docs/bkctld.8 @@ -1,6 +1,6 @@ .\" Manpage for bkctld. .\" Contact vlaborie@evolix.fr to correct errors or typos. -.TH man 8 "24 Mars 2017" "1.2.3" "bkctld man page" +.TH man 8 "24 Mars 2017" "1.3" "bkctld man page" .SH NAME bkctld - tool to manage evobackup jail .SH SYNOPSIS