unlink $log_fifo if -f $log_fifo;
mkfifo $log_fifo, 0700 unless -p $log_fifo;
+sub rsync_rebuild_config {
+
my $rsync_config = qq{
#uid = nobody
read only = false
uid = $uid
gid = $gid
- filter = - /.secrets
+ filter = - /.secrets - /.md5
# refuse options = c delete
# dont compress = *
+ incoming chmod = u=rwX,g+rX,o+rX
+
__RSYNC_MODULE__
write_file $cfg_file, $rsync_config;
warn "created $cfg_file ", -s $cfg_file, " bytes\n";
+} # sub rsync_rebuild_config
+
+rsync_rebuild_config;
+
sub rsync_running_pid {
return unless -e $pid_file;
my $pid = read_file $pid_file;
=cut
die "no rsync running" unless kill 0, rsync_running_pid;
- } elsif ( $line =~ m/unknown module/ ) {
+ } elsif ( $line =~ m/(unknown module|rebuild|reload|config)/ ) {
+ warn "refresh modules, rebuild config and HUP rsync";
+ Module::Refresh->refresh;
+ rsync_rebuild_config;
my $pid = rsync_running_pid;
kill 1, $pid && warn "reload config";
} else {