Removed small-files-stage
This commit is contained in:
parent
c427994555
commit
71b47482b1
|
@ -38,7 +38,8 @@ copy_files() {
|
||||||
rm -rf /etc/systemd/user/default.target.wants/wmde-rp-usersync.service
|
rm -rf /etc/systemd/user/default.target.wants/wmde-rp-usersync.service
|
||||||
ln -s /etc/systemd/user/wmde-rp-usersync.service /etc/systemd/user/default.target.wants/wmde-rp-usersync.service
|
ln -s /etc/systemd/user/wmde-rp-usersync.service /etc/systemd/user/default.target.wants/wmde-rp-usersync.service
|
||||||
|
|
||||||
cp wmde-rp-unison.prf /etc
|
cp wmde-rp-full.prf /etc
|
||||||
|
cp wmde-rp-config.prf /etc
|
||||||
}
|
}
|
||||||
|
|
||||||
update_pam() {
|
update_pam() {
|
||||||
|
|
|
@ -8,7 +8,7 @@ USER=`whoami`
|
||||||
PAM_USER=$USER
|
PAM_USER=$USER
|
||||||
PAM_TYPE=open_session
|
PAM_TYPE=open_session
|
||||||
#exec >> /tmp/mys-$USER.txt 2>&1
|
#exec >> /tmp/mys-$USER.txt 2>&1
|
||||||
#set -x
|
set -x
|
||||||
|
|
||||||
. $PREFIX/wmde-rp-check-pam-user.sh
|
. $PREFIX/wmde-rp-check-pam-user.sh
|
||||||
|
|
||||||
|
@ -90,9 +90,12 @@ OTHERARGS="-auto -log -prefer newer -maxerrors 500000"
|
||||||
|
|
||||||
export UNISONLOCALHOSTNAME=`hostname`
|
export UNISONLOCALHOSTNAME=`hostname`
|
||||||
export UNISON=$HOMEDIR/.wmdesync/unison-$UNISONLOCALHOSTNAME
|
export UNISON=$HOMEDIR/.wmdesync/unison-$UNISONLOCALHOSTNAME
|
||||||
WMDE_UNISON_PRF=/etc/wmde-rp-unison.prf
|
WMDE_UNISON_PRF=/etc/wmde-rp-full.prf
|
||||||
|
WMDE_UNISON_CFG_PRF=/etc/wmde-rp-config.prf
|
||||||
|
|
||||||
SERVERCMD="UNISONLOCALHOSTNAME=$UNISONLOCALHOSTNAME UNISON=$UNISON unison"
|
SERVERCMD="UNISONLOCALHOSTNAME=$UNISONLOCALHOSTNAME UNISON=$UNISON unison"
|
||||||
|
|
||||||
|
# Arbeits-Directory für Unison erstellen
|
||||||
mkdir -p $UNISON
|
mkdir -p $UNISON
|
||||||
LASTERROR=$?
|
LASTERROR=$?
|
||||||
if [ $LASTERROR -ne 0 ]; then
|
if [ $LASTERROR -ne 0 ]; then
|
||||||
|
@ -101,6 +104,7 @@ if [ $LASTERROR -ne 0 ]; then
|
||||||
exit $LASTERROR
|
exit $LASTERROR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Arbeits-Directory auch auf dem SSH-Server erstellen
|
||||||
ssh $SSHARGS $NFSSERVER "mkdir -p $UNISON"
|
ssh $SSHARGS $NFSSERVER "mkdir -p $UNISON"
|
||||||
LASTERROR=$?
|
LASTERROR=$?
|
||||||
if [ $LASTERROR -ne 0 ]; then
|
if [ $LASTERROR -ne 0 ]; then
|
||||||
|
@ -111,25 +115,23 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Lokal und remote eventuell vorhandene Lock- oder Cache-Dateien von Unison entfernen
|
||||||
REMOTEDIR="$UNISON"
|
|
||||||
LOCALDIR="$UNISON"
|
|
||||||
REMOTEFILES=$(ssh $SSHARGS $PAM_USER@$NFSSERVER find "$REMOTEDIR" -maxdepth 1 -type f -name 'ar*' -printf '%f\\n' | sort)
|
|
||||||
LOCALFILES=$(find "$LOCALDIR" -maxdepth 1 -type f -name 'ar*' -printf '%f\n' | sort)
|
|
||||||
|
|
||||||
#echo $REMOTEFILES
|
|
||||||
#echo $LOCALFILES
|
|
||||||
|
|
||||||
|
|
||||||
rm -f $LOCALDIR/lk*
|
rm -f $LOCALDIR/lk*
|
||||||
rm -f $LOCALDIR/fp*
|
rm -f $LOCALDIR/fp*
|
||||||
ssh $SSHARGS $PAM_USER@$NFSSERVER rm -f $REMOTEDIR/lk*
|
ssh $SSHARGS $PAM_USER@$NFSSERVER rm -f $REMOTEDIR/lk*
|
||||||
ssh $SSHARGS $PAM_USER@$NFSSERVER rm -f $REMOTEDIR/fp*
|
ssh $SSHARGS $PAM_USER@$NFSSERVER rm -f $REMOTEDIR/fp*
|
||||||
|
|
||||||
|
|
||||||
|
# Lokal und remote eine Liste aller Unison-Archive erstellen
|
||||||
|
REMOTEDIR="$UNISON"
|
||||||
|
LOCALDIR="$UNISON"
|
||||||
|
REMOTEFILES=$(ssh $SSHARGS $PAM_USER@$NFSSERVER find "$REMOTEDIR" -maxdepth 1 -type f -name 'ar*' -printf '%f\\n' | sort)
|
||||||
|
LOCALFILES=$(find "$LOCALDIR" -maxdepth 1 -type f -name 'ar*' -printf '%f\n' | sort)
|
||||||
|
|
||||||
|
|
||||||
|
# Archive löschen, wenn sie sich lokal und remote unterscheiden
|
||||||
if [ "$REMOTEFILES" = "$LOCALFILES" ]; then
|
if [ "$REMOTEFILES" = "$LOCALFILES" ]; then
|
||||||
echo "ok" > /dev/null
|
echo "ok" > /dev/null
|
||||||
|
|
||||||
else
|
else
|
||||||
# echo "Unison archives differ, removing them "
|
# echo "Unison archives differ, removing them "
|
||||||
rm -f $LOCALDIR/ar*
|
rm -f $LOCALDIR/ar*
|
||||||
|
@ -145,65 +147,40 @@ for file in $LOCALDIR/ar*; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Hilfsfunktion, um ein Unison-Profile zu erstellen
|
||||||
|
generate_profile() {
|
||||||
|
PROFILE="$UNISON/$1.prf"
|
||||||
|
echo "root = $HOMEDIR" > $PROFILE
|
||||||
|
echo "root = ssh://$NFSSERVER/$HOMEDIR" >> $PROFILE
|
||||||
|
cat /etc/wmde-rp-$1.prf >> $PROFILE
|
||||||
|
}
|
||||||
|
|
||||||
#if [ -e "$WMDE_UNISON_PRF" ]; then
|
generate_profile full
|
||||||
cp "$WMDE_UNISON_PRF" "$UNISON/default.prf";
|
generate_profile config
|
||||||
cat "$WMDE_UNISON_PRF" | ssh $SSHARGS $NFSSERVER "cat > $UNISON/default.prf"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
if [ "$1" = "pam" ]; then
|
#cp "$WMDE_UNISON_PRF" "$UNISON/full.prf";
|
||||||
echo "Loading roaming profile, please be patient ..."
|
#cp "$WMDE_UNISON_CFG_PRF" "$UNISON/config.prf";
|
||||||
size=$(ssh $SSHARGS $NFSSERVER "du -sh $HOMDIR | cut -f1")
|
|
||||||
$PREFIX/wmde-rp-progress.sh $HOMEDIR $size &
|
|
||||||
PRPID=$!
|
|
||||||
|
|
||||||
unison $HOMEDIR ssh://$NFSSERVER/$HOMEDIR -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync' -silent > /dev/null 2>&1
|
|
||||||
|
|
||||||
kill $PRPID
|
|
||||||
echo "Raoming profile loaded."
|
|
||||||
else
|
|
||||||
# Sync config
|
# Sync config
|
||||||
|
|
||||||
for item in $CONFIGDIRS; do
|
for item in $CONFIGDIRS; do
|
||||||
CONFIGDIRSARGS="$CONFIGDIRSARGS -path $item"
|
CONFIGDIRSARGS="$CONFIGDIRSARGS -path $item"
|
||||||
done
|
done
|
||||||
|
|
||||||
unison $HOMEDIR ssh://$NFSSERVER/$HOMEDIR -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync' $CONFIGDIRSARGS
|
unison config -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync' $CONFIGDIRSARGS
|
||||||
echo "$$" > $CONFIGSYNC
|
echo "$$" > $CONFIGSYNC
|
||||||
|
|
||||||
|
|
||||||
PROFILE=$UNISON/wmde.prf
|
|
||||||
REMOTE_BASE=$HOMEDIR
|
|
||||||
|
|
||||||
IGNORE_RULES=$(
|
|
||||||
ssh "$SSHARGS" $NFSSERVER "find '$REMOTE_BASE' -type f -size +$SMALLFILESSIZE" |
|
|
||||||
while IFS= read -r filepath; do
|
|
||||||
# Pfad relativieren zum REMOTE_BASE
|
|
||||||
relpath="${filepath#$REMOTE_BASE/}"
|
|
||||||
echo "ignore = Path $relpath"
|
|
||||||
done
|
|
||||||
)
|
|
||||||
generate_profile() {
|
|
||||||
echo "root = $HOMEDIR" > $PROFILE
|
|
||||||
echo "root = ssh://$NFSSERVER/$HOMEDIR" >> $PROFILE
|
|
||||||
printf "%s\n" "$1" >> $PROFILE
|
|
||||||
cat /etc/wmde-rp-unison.prf >> $PROFILE
|
|
||||||
}
|
|
||||||
|
|
||||||
generate_profile "$IGNORE_RULES"
|
|
||||||
unison wmde -sshargs "$SSHARGS" -times -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync'
|
|
||||||
echo "$$" > $SMALLFILESSYNC
|
echo "$$" > $SMALLFILESSYNC
|
||||||
|
|
||||||
# Sync all
|
# Sync all
|
||||||
unison $HOMEDIR ssh://$NFSSERVER/$HOMEDIR -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync'
|
unison full -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync'
|
||||||
echo "$$" > $FULLSYNC
|
echo "$$" > $FULLSYNC
|
||||||
echo "$$" > $FIRSTSYNC
|
echo "$$" > $FIRSTSYNC
|
||||||
|
|
||||||
# Sync all & repeat
|
# Sync all & repeat
|
||||||
unison $HOMEDIR ssh://$NFSSERVER/$HOMEDIR -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync' -repeat watch+60
|
unison full -times -sshargs "$SSHARGS" -servercmd "$SERVERCMD" $OTHERARGS -batch -ignore 'Path .wmdesync' -repeat watch+60 full
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in New Issue