Merge pull request #219 from kendarorg/master
Support for Qnap local and remote (no ctime support)
This commit is contained in:
commit
11e19108f5
|
@ -30,7 +30,7 @@ osync uses pidlocks to prevent multiple concurrent sync processes on/to the same
|
||||||
You may launch concurrent sync processes on the same system but as long as the replicas to synchronize are different.
|
You may launch concurrent sync processes on the same system but as long as the replicas to synchronize are different.
|
||||||
Multiple osync tasks may be launched sequentially by osync osync-batch tool.
|
Multiple osync tasks may be launched sequentially by osync osync-batch tool.
|
||||||
|
|
||||||
Currently, it has been tested on CentOS 5.x, 6.x, 7.x, Fedora 22-25, Debian 6-8, Linux Mint 14-18, Ubuntu 12.04-12.10, FreeBSD 8.3-11, Mac OS X and pfSense 2.3.x.
|
Currently, it has been tested on CentOS 5.x, 6.x, 7.x, Fedora 22-25, Debian 6-8, Linux Mint 14-18, Ubuntu 12.04-12.10, FreeBSD 8.3-11, Mac OS X, QTS 4.5.1(x86) and pfSense 2.3.x.
|
||||||
Microsoft Windows is supported via MSYS or Cygwin and now via Windows 10 bash.
|
Microsoft Windows is supported via MSYS or Cygwin and now via Windows 10 bash.
|
||||||
Android support works via Termux.
|
Android support works via Termux.
|
||||||
Some users also have successfully used osync on Gentoo and created an openRC init scriptt for it.
|
Some users also have successfully used osync on Gentoo and created an openRC init scriptt for it.
|
||||||
|
|
|
@ -1471,6 +1471,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1697,6 +1700,9 @@ ENDSSH
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
REMOTE_OS="Android"
|
REMOTE_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
REMOTE_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
REMOTE_OS="Linux"
|
REMOTE_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -2221,7 +2227,9 @@ function InitRemoteOSDependingSettings {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$RSYNC_COMPRESS" == true ]; then
|
if [ "$RSYNC_COMPRESS" == true ]; then
|
||||||
if [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
if [ "$LOCAL_OS" == "Qnap" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -z --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
|
elif [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
||||||
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
else
|
else
|
||||||
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
||||||
|
@ -2663,6 +2671,9 @@ function _CheckReplicasLocal {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Cannot get free space." "ERROR" $retval
|
Logger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -2929,6 +2940,9 @@ function _CheckReplicasRemoteSub {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
RemoteLogger "Cannot get free space." "ERROR" $retval
|
RemoteLogger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -3081,8 +3095,16 @@ function _HandleLocksRemote {
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
|
||||||
|
# Check if -A exists on target
|
||||||
|
ps -A > /dev/null 2>&1
|
||||||
|
notExistaCapitalA=$?
|
||||||
|
|
||||||
# Create an array of all currently running pids
|
# Create an array of all currently running pids
|
||||||
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
if [ "$notExistaCapitalA" == "0" ]; then
|
||||||
|
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
||||||
|
else
|
||||||
|
read -a initiatorRunningPids <<< $(ps -e | tail -n +2 | awk '{print $1}')
|
||||||
|
fi
|
||||||
|
|
||||||
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
||||||
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
||||||
|
@ -5297,7 +5319,7 @@ function _SoftDeleteLocal {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ]; then
|
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ] || [ "$LOCAL_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -5350,7 +5372,7 @@ function _SoftDeleteRemote {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ]; then
|
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -287,6 +287,9 @@ function _CheckReplicasLocal {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Cannot get free space." "ERROR" $retval
|
Logger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -355,6 +358,9 @@ function _CheckReplicasRemoteSub {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
RemoteLogger "Cannot get free space." "ERROR" $retval
|
RemoteLogger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -507,8 +513,16 @@ function _HandleLocksRemote {
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
|
||||||
|
# Check if -A exists on target
|
||||||
|
ps -A > /dev/null 2>&1
|
||||||
|
notExistaCapitalA=$?
|
||||||
|
|
||||||
# Create an array of all currently running pids
|
# Create an array of all currently running pids
|
||||||
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
if [ "$notExistaCapitalA" == "0" ]; then
|
||||||
|
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
||||||
|
else
|
||||||
|
read -a initiatorRunningPids <<< $(ps -e | tail -n +2 | awk '{print $1}')
|
||||||
|
fi
|
||||||
|
|
||||||
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
||||||
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
||||||
|
@ -2173,7 +2187,7 @@ function _SoftDeleteLocal {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ]; then
|
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ] || [ "$LOCAL_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -2226,7 +2240,7 @@ function _SoftDeleteRemote {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ]; then
|
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1488,6 +1488,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1716,6 +1719,9 @@ ENDSSH
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
REMOTE_OS="Android"
|
REMOTE_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
REMOTE_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
REMOTE_OS="Linux"
|
REMOTE_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -2240,7 +2246,9 @@ function InitRemoteOSDependingSettings {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$RSYNC_COMPRESS" == true ]; then
|
if [ "$RSYNC_COMPRESS" == true ]; then
|
||||||
if [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
if [ "$LOCAL_OS" == "Qnap" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -z --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
|
elif [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
||||||
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
else
|
else
|
||||||
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
||||||
|
|
13
install.sh
13
install.sh
|
@ -483,6 +483,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1630,6 +1633,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1802,6 +1808,9 @@ ENDSSH
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
REMOTE_OS="Android"
|
REMOTE_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
REMOTE_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
REMOTE_OS="Linux"
|
REMOTE_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -2309,7 +2318,9 @@ function InitRemoteOSDependingSettings {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$RSYNC_COMPRESS" == true ]; then
|
if [ "$RSYNC_COMPRESS" == true ]; then
|
||||||
if [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
if [ "$LOCAL_OS" == "Qnap" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -z --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
|
elif [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
||||||
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
else
|
else
|
||||||
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
||||||
|
|
|
@ -1255,6 +1255,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1427,6 +1430,9 @@ ENDSSH
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
REMOTE_OS="Android"
|
REMOTE_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
REMOTE_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
REMOTE_OS="Linux"
|
REMOTE_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1934,7 +1940,9 @@ function InitRemoteOSDependingSettings {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$RSYNC_COMPRESS" == true ]; then
|
if [ "$RSYNC_COMPRESS" == true ]; then
|
||||||
if [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
if [ "$LOCAL_OS" == "Qnap" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -z --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
|
elif [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
||||||
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
else
|
else
|
||||||
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
||||||
|
|
30
osync.sh
30
osync.sh
|
@ -1395,6 +1395,9 @@ function GetLocalOS {
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
LOCAL_OS="Android"
|
LOCAL_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
LOCAL_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
LOCAL_OS="Linux"
|
LOCAL_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -1565,6 +1568,9 @@ ENDSSH
|
||||||
*"Android"*)
|
*"Android"*)
|
||||||
REMOTE_OS="Android"
|
REMOTE_OS="Android"
|
||||||
;;
|
;;
|
||||||
|
*"qnap"*)
|
||||||
|
REMOTE_OS="Qnap"
|
||||||
|
;;
|
||||||
*"Linux"*)
|
*"Linux"*)
|
||||||
REMOTE_OS="Linux"
|
REMOTE_OS="Linux"
|
||||||
;;
|
;;
|
||||||
|
@ -2072,7 +2078,9 @@ function InitRemoteOSDependingSettings {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$RSYNC_COMPRESS" == true ]; then
|
if [ "$RSYNC_COMPRESS" == true ]; then
|
||||||
if [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
if [ "$LOCAL_OS" == "Qnap" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -z --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
|
elif [ "$LOCAL_OS" != "MacOSX" ] && [ "$REMOTE_OS" != "MacOSX" ]; then
|
||||||
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
RSYNC_DEFAULT_ARGS=$RSYNC_DEFAULT_ARGS" -zz --skip-compress=3fr/3g2/3gp/3gpp/7z/aac/ace/amr/apk/appx/appxbundle/arc/arj/arw/asf/avi/bz/bz2/cab/cr2/crypt[5678]/dat/dcr/deb/dmg/drc/ear/erf/flac/flv/gif/gpg/gz/iiq/jar/jp2/jpeg/jpg/h26[45]/k25/kdc/kgb/lha/lz/lzma/lzo/lzx/m4[apv]/mef/mkv/mos/mov/mp[34]/mpeg/mp[gv]/msi/nef/oga/ogg/ogv/opus/orf/pak/pef/png/qt/rar/r[0-9][0-9]/rz/rpm/rw2/rzip/s7z/sfark/sfx/sr2/srf/svgz/t[gb]z/tlz/txz/vob/wim/wma/wmv/xz/zip"
|
||||||
else
|
else
|
||||||
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
Logger "Disabling compression skips on synchronization on [$LOCAL_OS] due to lack of support." "NOTICE"
|
||||||
|
@ -2510,6 +2518,9 @@ function _CheckReplicasLocal {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Cannot get free space." "ERROR" $retval
|
Logger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -2766,6 +2777,9 @@ function _CheckReplicasRemoteSub {
|
||||||
if [ $MINIMUM_SPACE -ne 0 ]; then
|
if [ $MINIMUM_SPACE -ne 0 ]; then
|
||||||
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
|
if [[ $diskSpace == *"%"* ]]; then
|
||||||
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $3}')
|
||||||
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
RemoteLogger "Cannot get free space." "ERROR" $retval
|
RemoteLogger "Cannot get free space." "ERROR" $retval
|
||||||
|
@ -2915,8 +2929,16 @@ function _HandleLocksRemote {
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
|
||||||
|
# Check if -A exists on target
|
||||||
|
ps -A > /dev/null 2>&1
|
||||||
|
notExistaCapitalA=$?
|
||||||
|
|
||||||
# Create an array of all currently running pids
|
# Create an array of all currently running pids
|
||||||
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
if [ "$notExistaCapitalA" == "0" ]; then
|
||||||
|
read -a initiatorRunningPids <<< $(ps -A | tail -n +2 | awk '{print $1}')
|
||||||
|
else
|
||||||
|
read -a initiatorRunningPids <<< $(ps -e | tail -n +2 | awk '{print $1}')
|
||||||
|
fi
|
||||||
|
|
||||||
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
# passing initiatorRunningPids as litteral string (has to be run through eval to be an array again)
|
||||||
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
$SSH_CMD env _REMOTE_TOKEN="$_REMOTE_TOKEN" \
|
||||||
|
@ -5086,7 +5108,7 @@ function _SoftDeleteLocal {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ]; then
|
if [ "$LOCAL_OS" == "Busybox" ] || [ "$LOCAL_OS" == "Android" ] || [ "$LOCAL_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -5138,7 +5160,7 @@ function _SoftDeleteRemote {
|
||||||
|
|
||||||
local retval
|
local retval
|
||||||
|
|
||||||
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ]; then
|
if [ "$REMOTE_OS" == "BusyBox" ] || [ "$REMOTE_OS" == "Android" ] || [ "$REMOTE_OS" == "Qnap" ]; then
|
||||||
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
Logger "Skipping $deletionType deletion on $replicaType. Busybox find -ctime not supported." "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue