Compare commits

...

3 Commits

Author SHA1 Message Date
Tobias Herre 82ac83fad8 First work on osync 2025-05-01 10:10:33 -04:00
Tobias Herre f5943c5b0e Rename wmde-rp-unison-sync-ssh.sh to wmde-rp-unison-ssh.sh 2025-05-01 08:22:45 -04:00
Tobias Herre 4f924af140 New service name, usersync renamed to unison 2025-05-01 07:31:05 -04:00
6 changed files with 85 additions and 15 deletions

View File

@ -28,15 +28,15 @@ copy_files() {
#cp wmde-rp-unison-initial-sync-nfs.sh $PREFIX/
cp wmde-rp-generate-known-hosts.sh $PREFIX/
#cp wmde-rp-usersync-nfs.sh $PREFIX/
cp wmde-rp-usersync-ssh.sh $PREFIX/
cp wmde-rp-unison-sync-ssh.sh $PREFIX/
cp wmde-rp-progress.sh $PREFIX/
cp wmde-rp-common.sh $PREFIX/
chmod 755 $PREFIX/*
cp wmde-rp-usersync.service /etc/systemd/user/wmde-rp-usersync.service
cp wmde-rp-sync.service /etc/systemd/user/wmde-rp-sync.service
mkdir -p /etc/systemd/user/default.target.wants
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
rm -rf /etc/systemd/user/default.target.wants/wmde-rp-sync.service
ln -s /etc/systemd/user/wmde-rp-sync.service /etc/systemd/user/default.target.wants/wmde-rp-sync.service
cp wmde-rp-full.prf /etc
cp wmde-rp-config.prf /etc

View File

@ -1,11 +1,52 @@
WMDERPDIR=.wmde-osync
LOGFILE=$HOMEDIR/$WMDERPDIR/usersync.log
PIDFILE=$HOMEDIR/$WMDERPDIR/usersync.pid
FIRSTSYNC=$HOMEDIR/$WMDERPDIR/firstsync-done
FULLSYNC=$HOMEDIR/$WMDERPDIR/fullsync-done
CONFIGSYNC=$HOMEDIR/$WMDERPDIR/configsync-done
HOMEDIR=$(getent passwd "$PAM_USER" | cut -d: -f6)
create_wmderpdir ()
{
mkdir -p $HOMEDIR/$WMDERPDIR
LASTERROR=$?
if [ $LASTERROR -ne 0 ]; then
echo $$ > $CONFIGSYNC
echo $$ > $FULLSYNC
exit $LASTERROR
fi
}
create_knonw_hosts_and_nfshomedir()
{
KNOWNHOSTS=`$PREFIX/wmde-rp-generate-known-hosts.sh`
LASTERROR=$?
if [ $LASTERROR -ne 0 ]; then
echo $$ > $CONFIGSYNC
echo $$ > $FULLSYNC
exit $LASTERROR
fi
LOGFILE=$HOMEDIR/.wmdesync/usersync.log
PIDFILE=$HOMEDIR/.wmdesync/usersync.pid
FIRSTSYNC=$HOMEDIR/.wmdesync/firstsync-done
FULLSYNC=$HOMEDIR/.wmdesync/fullsync-done
CONFIGSYNC=$HOMEDIR/.wmdesync/configsync-done
SMALLFILESSYNC=$HOMEDIR/.wmdesync/smallfilessync-done
echo $KNOWNHOSTS > "$HOMEDIR/$WMDERPDIR/known_hosts"
LASTERROR=$?
if [ $LASTERROR -ne 0 ]; then
echo $$ > $CONFIGSYNC
echo $$ > $FULLSYNC
exit $LASTERROR
fi
# The following creates users home directory on the nfs server if not already exists
ssh $SSHARGS $PAM_USER@$NFSSERVER /usr/bin/true
LASTERROR=$?
if [ $LASTERROR -ne 0 ]; then
echo $$ > $CONFIGSYNC
echo $$ > $FULLSYNC
exit $LASTERROR
fi
}

32
wmde-rp-osync-ssh.sh Normal file
View File

@ -0,0 +1,32 @@
#!/bin/sh
set -x
. /etc/wmde-rp.conf
USER=`whoami`
PAM_USER=$USER
PAM_TYPE=open_session
. $PREFIX/wmde-rp-check-pam-user.sh
. $PREFIX/wmde-rp-common.sh
SSHARGS="-o UserKnownHostsFile=$HOMEDIR/$WMDERPDIR/known_hosts"
create_wmderpdir
if [ -f "$PIDFILE" ]; then
OLD_PID=`cat "$PIDFILE"`
if kill -0 "$OLD_PID" 2> /dev/null; then
echo "Usersync already running." >> $LOGFILE
exit 0
fi
fi
echo 0 > $CONFIGSYNC
echo 0 > $FULLSYNC
echo $$ > $PIDFILE
create_knonw_hosts_and_nfshomedir

View File

@ -3,7 +3,7 @@ Description=WMDE RP User Sync
After=default.target
[Service]
ExecStart=/bin/bash -c 'exec /usr/local/bin/wmde/wmde-rp-usersync-ssh.sh'
ExecStart=/bin/bash -c '. /etc/wmde-rp.conf; exec $PREFIX/wmde-rp-$SYNCPRG-ssh.sh'
Restart=always
RestartSec=20
TimeoutStopSec=5

View File

@ -61,9 +61,6 @@ if [ $LASTERROR -ne 0 ]; then
exit $LASTERROR
fi
echo $KNOWNHOSTS > "$HOMEDIR/.wmdesync/known_hosts"
LASTERROR=$?
if [ $LASTERROR -ne 0 ]; then

View File

@ -3,7 +3,7 @@ NFSSERVER=nfsserver.gs.wikimedia.de
NFSHOMES=/mnt/home
PREFIX=/usr/local/bin/wmde
SYNPRG=unison
SYNCPRG=unison
ADMIN_USERS="admin root" # never run roaming profiles for this users