Merge branch 'master' into betterKillChilds

Conflicts:
	dev/debug_osync.sh
	dev/n_osync.sh
	osync.sh
This commit is contained in:
deajan 2016-04-01 21:24:53 +02:00
commit 757c53ca3a
13 changed files with 45 additions and 20 deletions

View File

@ -13,8 +13,12 @@ KNOWN ISSUES
RECENT CHANGES RECENT CHANGES
-------------- --------------
#TODO: clock compare in doc
#TODO: explain why osync is lowband friendly in doc
#TODO: explain why osync daemon process can still exist after quit for 30s
! XX Apr 2016: osync v1.1 released ! XX Apr 2016: osync v1.1 released
! Paranoia debug gives incorrect number of arguments in rsyncpatternsadd
! cat vv | ssh -p 49999 -i /root/.ssh/id_rsa_netpower root@netpower.fr cat | xargs -I {} stat -c "%n;%Z;%Y" "{}" | sort > tes
! Updated documentation (+README.md file) ! Updated documentation (+README.md file)
- Redirected ERROR and WARN messages to stderr to systemd catches them into it's journal - Redirected ERROR and WARN messages to stderr to systemd catches them into it's journal
!- Added a systemd unit file (needs testing in file monitor mode yet) !- Added a systemd unit file (needs testing in file monitor mode yet)

View File

@ -8,7 +8,7 @@ Always use the following header
#!/usr/bin/env bash #!/usr/bin/env bash
PROGRAM="program-name" # Long description PROGRAM="program-name" # Long description
AUTHOR="(L) 20XX-20YY by Orsiris \"Ozy\" de Jong" AUTHOR="(C) 20XX-20YY by Orsiris \"Ozy\" de Jong"
CONTACT="http://www.example.com me@example.com" CONTACT="http://www.example.com me@example.com"
PROGRAM_BUILD=YYYYMMDDVV PROGRAM_BUILD=YYYYMMDDVV
@ -145,3 +145,12 @@ As obackup and osync share alot of common functions, ofunctions.sh will host all
Dev programs n_osync.sh and n_obackup.sh will source ofunctions.sh Dev programs n_osync.sh and n_obackup.sh will source ofunctions.sh
Release programs will still include ofunctions.sh in order to enhance ease of use. Release programs will still include ofunctions.sh in order to enhance ease of use.
Ofunctions are defined like:
#__FUNC:FunctionName
function FunctionName {
}
#__ENDFUNC
These functions are inserted into code that has placeholders like #__FUNC:FuncName

View File

@ -1,4 +1,4 @@
Copyright (c) 2013-2015, Orsiris "Ozy" de Jong. ozy@netpower.fr Copyright (c) 2013-2016, Orsiris de Jong. ozy@netpower.fr
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View File

@ -127,10 +127,10 @@ You may run the install.sh script which should work in most cases or copy the fi
$ service osync-srv start $ service osync-srv start
$ chkconfig osync-srv on $ chkconfig osync-srv on
Systemd specific Systemd specific (one service per config file)
$ systemctl start osync-srv@configfile $ systemctl start osync-srv@configfile.conf
$ systemctl enable osync-srv@configfile $ systemctl enable osync-srv@configfile.conf
Troubleshooting Troubleshooting
--------------- ---------------

2
dev/de
View File

@ -3,7 +3,7 @@
#TODO: test if trapquit works on kill (sigterm) #TODO: test if trapquit works on kill (sigterm)
PROGRAM="osync" # Rsync based two way sync engine with fault tolerance PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(L) 2013-2016 by Orsiris de Jong" AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1-dev PROGRAM_VERSION=1.1-dev
PROGRAM_BUILD=2016021804 PROGRAM_BUILD=2016021804

View File

@ -4,7 +4,11 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(C) 2013-2016 by Orsiris de Jong" AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1-dev PROGRAM_VERSION=1.1-dev
<<<<<<< HEAD
PROGRAM_BUILD=2016040101 PROGRAM_BUILD=2016040101
=======
PROGRAM_BUILD=2016033101
>>>>>>> master
IS_STABLE=yes IS_STABLE=yes
## FUNC_BUILD=2016033105 ## FUNC_BUILD=2016033105
@ -1134,14 +1138,14 @@ function CheckCurrentConfig {
fi fi
# Check all variables that should contain "yes" or "no" # Check all variables that should contain "yes" or "no"
declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR) declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION SSH_IGNORE_KNOWN_HOSTS REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR)
for i in "${yes_no_vars[@]}"; do for i in "${yes_no_vars[@]}"; do
test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"
done done
# Check all variables that should contain a numerical value >= 0 # Check all variables that should contain a numerical value >= 0
declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY) declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY MAX_EXEC_TIME_PER_CMD_BEFORE MAX_EXEC_TIME_PER_CMD_AFTER)
for i in "${num_vars[@]}"; do for i in "${num_vars[@]}"; do
test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"

View File

@ -4,7 +4,11 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(C) 2013-2016 by Orsiris de Jong" AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1-dev PROGRAM_VERSION=1.1-dev
<<<<<<< HEAD
PROGRAM_BUILD=2016040101 PROGRAM_BUILD=2016040101
=======
PROGRAM_BUILD=2016033101
>>>>>>> master
IS_STABLE=yes IS_STABLE=yes
source "./ofunctions.sh" source "./ofunctions.sh"
@ -99,14 +103,14 @@ function CheckCurrentConfig {
fi fi
# Check all variables that should contain "yes" or "no" # Check all variables that should contain "yes" or "no"
declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR) declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION SSH_IGNORE_KNOWN_HOSTS REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR)
for i in "${yes_no_vars[@]}"; do for i in "${yes_no_vars[@]}"; do
test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"
done done
# Check all variables that should contain a numerical value >= 0 # Check all variables that should contain a numerical value >= 0
declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY) declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY MAX_EXEC_TIME_PER_CMD_BEFORE MAX_EXEC_TIME_PER_CMD_AFTER)
for i in "${num_vars[@]}"; do for i in "${num_vars[@]}"; do
test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"

View File

@ -135,7 +135,7 @@ fi
function Statistics { function Statistics {
local link="http://instcount.netpower.fr?program=$PROGRAM&version=$PROGRAM_VERSION" local link="http://instcount.netpower.fr?program=$PROGRAM&version=$PROGRAM_VERSION"
if type wget > /dev/null; then if type wget -qO- > /dev/null; then
wget $link > /dev/null 2>&1 wget $link > /dev/null 2>&1
if [ $? == 0 ]; then if [ $? == 0 ]; then
exit 0 exit 0

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SUBPROGRAM=osync SUBPROGRAM=osync
PROGRAM="$SUBPROGRAM-batch" # Batch program to run osync / obackup instances sequentially and rerun failed ones PROGRAM="$SUBPROGRAM-batch" # Batch program to run osync / obackup instances sequentially and rerun failed ones
AUTHOR="(C) 2013-2016 by Orsiris de Jong" AUTHOR="(L) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr - ozy@netpower.fr" CONTACT="http://www.netpower.fr - ozy@netpower.fr"
PROGRAM_BUILD=2016031301 PROGRAM_BUILD=2016031301

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# #
# osync-srv Two way directory sync daemon # osync-srv Two way directory sync daemon
# #

View File

@ -4,7 +4,11 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
AUTHOR="(C) 2013-2016 by Orsiris de Jong" AUTHOR="(C) 2013-2016 by Orsiris de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
PROGRAM_VERSION=1.1-dev PROGRAM_VERSION=1.1-dev
<<<<<<< HEAD
PROGRAM_BUILD=2016040101 PROGRAM_BUILD=2016040101
=======
PROGRAM_BUILD=2016033101
>>>>>>> master
IS_STABLE=yes IS_STABLE=yes
## FUNC_BUILD=2016033105 ## FUNC_BUILD=2016033105
@ -1060,14 +1064,14 @@ function CheckCurrentConfig {
fi fi
# Check all variables that should contain "yes" or "no" # Check all variables that should contain "yes" or "no"
declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR) declare -a yes_no_vars=(CREATE_DIRS SUDO_EXEC SSH_COMPRESSION SSH_IGNORE_KNOWN_HOSTS REMOTE_HOST_PING PRESERVE_ACL PRESERVE_XATTR COPY_SYMLINKS KEEP_DIRLINKS PRESERVE_HARDLINKS CHECKSUM RSYNC_COMPRESS CONFLICT_BACKUP CONFLICT_BACKUP_MULTIPLE SOFT_DELETE RESUME_SYNC FORCE_STRANGER_LOCK_RESUME PARTIAL DELTA_COPIES STOP_ON_CMD_ERROR)
for i in "${yes_no_vars[@]}"; do for i in "${yes_no_vars[@]}"; do
test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ \"\$$i\" != \"yes\" ] && [ \"\$$i\" != \"no\" ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"
done done
# Check all variables that should contain a numerical value >= 0 # Check all variables that should contain a numerical value >= 0
declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY) declare -a num_vars=(MINIMUM_SPACE BANDWIDTH SOFT_MAX_EXEC_TIME HARD_MAX_EXEC_TIME MIN_WAIT MAX_WAIT CONFLICT_BACKUP_DAYS SOFT_DELETE_DAYS RESUME_TRY MAX_EXEC_TIME_PER_CMD_BEFORE MAX_EXEC_TIME_PER_CMD_AFTER)
for i in "${num_vars[@]}"; do for i in "${num_vars[@]}"; do
test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi" test="if [ $(IsNumeric \"\$$i\") -eq 0 ]; then Logger \"Bogus $i value defined in config file.\" \"CRITICAL\"; exit 1; fi"
eval "$test" eval "$test"

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Test dir # Test dir
TMP="/tmp/osync_tests" TMP="/tmp/osync_tests"

View File

@ -6,7 +6,7 @@ AUTHOR="(C) 2015 by Orsiris \"Ozy\" de Jong"
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
OLD_PROGRAM_VERSION="1.0x" OLD_PROGRAM_VERSION="1.0x"
NEW_PROGRAM_VERSION="v1.1x" NEW_PROGRAM_VERSION="v1.1x"
PROGRAM_BUILD=2016033101 PROGRAM_BUILD=2016033102
function Init { function Init {
OSYNC_DIR=".osync_workdir" OSYNC_DIR=".osync_workdir"
@ -311,8 +311,8 @@ function RewriteConfigFiles {
exit 1 exit 1
fi fi
echo "Backing up [$config_file] as [$config_file.v1.0x.save]" echo "Backing up [$config_file] as [$config_file.save]"
cp --preserve "$config_file" "$config_file.v1.0x.save" cp --preserve "$config_file" "$config_file.save"
if [ $? != 0 ]; then if [ $? != 0 ]; then
echo "Cannot backup config file." echo "Cannot backup config file."
exit 1 exit 1