How to add timestamp and file list to rsync log?

Solution 1:

If you want to see the time for every file on the rsync client, you need to use --out-format:

 rsync -avz --out-format="%t %f %b" remotehost:tmp . 

the output looks like this:

2013/01/11 10:57:41 tmp/foo.txt 210

Log Format String:

%t: time
%f: file
%b: transfered bytes

Solution 2:

From rsyncd.conf(5):
"The default log format is "%o %h [%a] %m (%u) %f %l", and a "%t [%p] " is always prefixed when using the "log file" parameter."

2012/01/04 03:19:12 [1461] building file list
2012/01/04 03:19:12 [1461] .d..t...... ./
2012/01/04 03:19:14 [1461] >f+++++++++ file1.pdf
2012/01/04 03:19:14 [1461] >f+++++++++ file2.pdf
2012/01/04 03:19:14 [1461] >f+++++++++ file3.pdf
2012/01/04 03:19:14 [1461] sent 40892313 bytes  received 72 bytes  16356954.00 bytes/sec
2012/01/04 03:19:14 [1461] total size is 81997177  speedup is 2.01


I believe this is what you want? Try your command without the --log-format option, and read the manual page for rsyncd.conf and search for "log format" to see what options you have to customize the logfile.

Another option I often use in my rsync scripts is to add date before/after the rsync, like:

date >> /var/log/rsync.log
rsync -avz --progress --delete /src /dst >> /var/log/rsync.log
date >> /var/log/rsync.log

And a third and final option would be to put your rsync command within a bash loop to prefix each line with the date.

Tags:

Rsync