Hmmm, I also tried this to use variable from the script calling instead of from the script body, same result (script doesn't run : / ) :

freenas:/mnt/data/serveuranm# cat ../timestamp.sh
#!/bin/tcsh
#Turn on debug info
set DEBUG = 0

#Check if we have the good arg number
if( $# < 1 || $# > 1 ) then
        echo "Usage: $0 <name_of_backuped_host>"
        exit
endif

#Name of the backup directory
set BACKUP = backup

#Name of the backup mount (partition)
set MOUNTNAME = data

#Check if the backup directory exists
if( ! ( -e $BACKUP ) ) then
        echo "Directory backup is missing"
        exit
endif

#Set up useful variables
set DATE = `date +"%Y-%m-%d-%H%M%S"`
set AVAIL = `df | grep $MOUNTNAME | awk -F' ' '{print $4}'`
set SIZE = `du -s $BACKUP/ | awk -F' ' '{print $1}'`

if ( $DEBUG ) then
        echo "DATE = $DATE \
AVAIL = $AVAIL \
SIZE = $SIZE"
endif

if( ! ( -e lastest ) ) then
        mv -f $BACKUP lastest
else
        mv -f lastest $1$DATE
        mv -f $BACKUP lastest
endif
while ( $AVAIL < $SIZE )
        rm -Rf `ls -1 | grep $1 | head -n 1`
end
unset *

freenas:/mnt/data/serveuranm# cat /var/etc/rsyncd.conf
syslog facility = local4
list = no
port = 873
pid file = /var/run/rsyncd.pid
uid = rsync

[serveuranm]
comment = Sauvegarde du serveur ANM
path = /mnt/data/serveuranm/
list = true
max connections = 0
read only = false
uid = serveuranm
gid = rsync
post-xfer exec = /mnt/data/timestamp.sh $RSYNC_HOST_NAME

Thanks for any clue of what's wrong.

Best regards,

Vitorio

Le 28 juil. 08 à 09:39, macuserfr a écrit :

Hi folks, that's me again...

Well, following Matt's suggestion, I'm trying to setup my server to call a post transfer script. Guess what? It's not working and I don't know why. I've looked around other posts in this mail list and googling around. Didn't found what's wrong with my setup. So rsync runs nicely but don't call the post-transfer script. The post transfer script runs fine when I run it manually with root, rsync user or the module defined user (serveuranm). No errors in client side nor in rsyncd log. There is maybe a path/user mistake somewhere.

Client side:
cwrsync with rsync 3.0.2 and modded cygwin1.dll in order to have long name support.

cwrsync.cmd batch rsync file content:

@ECHO OFF
REM *****************************************************************
REM
REM CWRSYNC.CMD - Batch file template to start your rsync command (s).
REM
REM By Tevfik K. (http://itefix.no)
REM *****************************************************************

REM Make environment variable changes local to this batch file
SETLOCAL

REM ** CUSTOMIZE ** Specify where to find rsync and related files (C: \CWRSYNC)
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC

REM Set CYGWIN variable to 'nontsec'. That makes sure that permissions
REM on your windows machine are not updated as a side effect of cygwin
REM operations.
SET CYGWIN=nontsec nodosfilewarning codepage:utf8

SET LC_CTYPE="C-UTF-8"

REM Set HOME variable to your windows home directory. That makes sure
REM that ssh command creates known_hosts in a directory you have access.
SET HOME=%HOMEDRIVE%%HOMEPATH%

REM Make cwRsync home as a part of system PATH to find required DLLs
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

REM Windows paths may contain a colon (:) as a part of drive designation and REM backslashes (example c:\, g:\). However, in rsync syntax, a colon in a REM path means searching for a remote host. Solution: use absolute path 'a la unix', REM replace backslashes (\) with slashes (/) and put -/cygdrive/- in front of the
REM drive letter:
REM
REM Example : C:\WORK\* --> /cygdrive/c/work/*
REM
REM Example 1 - rsync recursively to a unix server with an openssh server :
REM
REM       rsync -r /cygdrive/c/work/ remotehost:/home/user/work/
REM
REM Example 2 - Local rsync recursively
REM
REM       rsync -r /cygdrive/c/work/ /cygdrive/d/work/doc/
REM
REM Example 3 - rsync to an rsync server recursively :
REM    (Double colons?? YES!!)
REM
REM       rsync -r /cygdrive/c/doc/ remotehost::module/doc
REM
REM Rsync is a very powerful tool. Please look at documentation for other options.
REM

REM ** CUSTOMIZE ** Enter your rsync command(s) here
rsync -ab --link-dest="/lastest" --size-only --chmod=ugo=rwX / cygdrive/c/DossiersPartages 172.20.30.194::serveuranm/backup

Server side:

freenas:~# cat /var/etc/rsyncd.conf
syslog facility = local4
list = no
port = 873
pid file = /var/run/rsyncd.pid
uid = rsync

[serveuranm]
comment = Sauvegarde du serveur ANM
path = /mnt/data/serveuranm/
list = true
max connections = 0
read only = false
uid = serveuranm
gid = rsync
post-xfer exec = /mnt/data/timestamp.sh

freenas:~# cat /var/log/rsyncd.log
Jul 24 09:46:13 freenas rsyncd[18257]: connect from serveuranm.domaineanm.fr (172.20.30.197) Jul 24 09:46:13 freenas rsyncd[18258]: rsync to serveuranm/backup from serveuranm.domaineanm.fr (172.20.30.197)
Jul 24 09:46:13 freenas rsyncd[18258]: receiving file list
Jul 24 10:57:40 freenas rsyncd[18258]: sent 18697 bytes received 1935199 bytes total size 22859727296 Jul 24 13:07:37 freenas rsyncd[23442]: connect from serveuranm.domaineanm.fr (172.20.30.197) Jul 24 13:07:37 freenas rsyncd[23443]: rsync to serveuranm/backup from serveuranm.domaineanm.fr (172.20.30.197)
Jul 24 13:07:37 freenas rsyncd[23443]: receiving file list
Jul 24 14:12:42 freenas rsyncd[23443]: sent 42471 bytes received 2353855 bytes total size 22859731464

freenas:~# ls -l /mnt/data/
total 24
drwxrwxrwx  2 root        wheel      512 Jul  2 17:36 .AppleDB
drwxrwxrwx  2 ftp         wheel      512 Jul  2 17:36 .AppleDesktop
drwxrwxrwx  2 ftp         wheel      512 Jul  2 17:36 .AppleDouble
-rw-rw-rw-  1 ftp         wheel     6148 Jul  2 17:36 .DS_Store
drwxrwxr-x  2 root        operator   512 Jan  8  2001 .snap
drwxrwxrwx 3 ftp wheel 512 Jul 2 17:36 Network Trash Folder
drwxrwxrwx  3 ftp         wheel      512 Jul  2 17:36 Temporary Items
drwxrwxrwx  6 serveuranm  rsync      512 Jul 24 13:07 serveuranm
-rwxr-xr-x  1 root        wheel      734 Jul 22 18:02 timestamp.sh

freenas:~# cat /mnt/data/timestamp.sh
#!/bin/tcsh
#Turn on debug info
set DEBUG = 0

#Name of the backup directory
set BACKUP = backup

#Name of the backup mount (partition)
set MOUNTNAME = data

#Check if the backup directory exists
if( ! ( -e $BACKUP ) ) then
       echo "Directory backup is missing"
        exit
endif

#Set up useful variables
set DATE = `date +"%Y-%m-%d-%H%M%S"`
set AVAIL = `df | grep $MOUNTNAME | awk -F' ' '{print $4}'`
set SIZE = `du -s $BACKUP/ | awk -F' ' '{print $1}'`

if ( $DEBUG ) then
        echo "DATE = $DATE \
AVAIL = $AVAIL \
SIZE = $SIZE"
endif

if( ! ( -e lastest ) ) then
        mv -f $BACKUP lastest
else
       mv -f lastest $1$DATE
       mv -f $BACKUP lastest
endif
while ( $AVAIL < $SIZE )
        rm -Rf `ls -1 | grep $1 | head -n 1`
end
unset *

freenas:/mnt/data/serveuranm# cat /etc/passwd
root:*:0:0:Charlie &:/root:/bin/tcsh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin
ftp:*:21:50:FTP user:/mnt:/sbin/nologin
man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
serveuranm:*:11212:1001:Sauvegarde du serveur ANM:/mnt/data/ serveuranm/:/bin/tcsh
rsync:*:11211:1001:Sauvegarde via rsync:/mnt/data/:/bin/tcsh

Maybe there is a problem because the script is not on the path of the module, but I read that the post-xfer exec is not chrooted so I could find any path of the system. The script is readable and executable by all users.

PS: I don't have strace installed on this server.

Thanks for any help on this. I'm sure it's a dumb mistake but I'm too close to see it. I've rechecked setup many times without seeing anything wrong.

Best regards,

Vitorio

--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to