===== Lsyncd ===== Install required libraries: apt-get install lsyncd echo 'fs.inotify.max_user_watches=400000' > /etc/sysctl.d/99-lsyncd.conf sysctl -p /etc/sysctl.d/99-lsyncd.conf Create the sync directories on both servers: mkdir /home/moodle mkdir /home/moodledata chmod 775 /home/moodle chmod 775 /home/moodledata Create the user: useradd lsyncd mkdir /home/lsyncd chown lsyncd:lsyncd /home/lsyncd usermod -aG www-data lsyncd On server1: su - lsyncd ssh-keygen On server2: su - lsyncd mkdir /home/lsyncd/.ssh chmod 700 /home/lsyncd/.ssh touch /home/lsyncd/.ssh/authorized_keys chmod 600 /home/lsyncd/.ssh/authorized_keys Copy key from server1 /home/lsyncd/.ssh/id_rsa.pub to server2 /home/lsyncd/.ssh/authorized_keys. Create Lsyncd configuration on server1: touch /etc/lsyncd.conf touch /etc/lsyncd.exclude chown lsyncd:lsyncd /etc/lsyncd.conf chown lsyncd:lsyncd /etc/lsyncd.exclude touch /var/log/lsyncd.log touch /var/log/lsyncd-status.log chown lsyncd:lsyncd /var/log/lsyncd.log chown lsyncd:lsyncd /var/log/lsyncd-status.log Content of /etc/lsyncd.conf: settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd-status.log", statusInterval = 20, maxProcesses = 1 } sync { default.rsyncssh, source="/home/moodle", host="lsyncd@192.168.122.135", excludeFrom="/etc/lsyncd.exclude", targetdir="/home/moodle", rsync = { archive = true, compress = false, whole_file = false }, ssh = { port = 22 } } Create a systemd unit to start automatically with the following name /etc/systemd/system/lsyncd-moodle.service [Unit] Description=Live Syncing (Mirror) Daemon After=network.target [Service] User=lsyncd Group=lsyncd Restart=always Type=simple Nice=19 ExecStart=/usr/bin/lsyncd -nodaemon -pidfile /run/lsyncd.pid /etc/lsyncd.conf ExecReload=/bin/kill -HUP $MAINPID PIDFile=/run/lsyncd.pid [Install] WantedBy=multi-user.target Reload systemd and enable lsyncd-moodle: systemctl daemon-reload systemctl enable lsyncd-moodle systemctl start lsyncd-moodle ==== References ==== * https://download.moodle.org/download.php/stable404/moodle-4.4.1.tgz * https://developers.redhat.com/blog/2018/11/02/how-to-manually-copy-ssh-keys-rhel * https://github.com/lsyncd/lsyncd#readme * https://docs.rockylinux.org/guides/backup/mirroring_lsyncd/