Hello, I have written a little script that's would email me all errors. rsync -vah --delete --stats <sources> <destination> > /var/log/sauvegarde/listoffile.log 2> /var/log/sauvegarde/errors.log My problem is i want to have the stats in my mail. Is it possible to redirect --stats to STDERR. I have tryed to do this : /--- rsync-2.6.9/main.c 2006-10-14 01:46:32.000000000 +0200/ /+++ rsync-2.6.9.new/main.c 2007-02-06 19:28:08.000000000 +0100/ /@@ -227,39 +227,39 @@/ / {/ / if (do_stats) {/ / rprintf(FCLIENT, "\n");/ /- rprintf(FINFO,"Number of files: %d\n", stats.num_files);/ /- rprintf(FINFO,"Number of files transferred: %d\n",/ /+ rprintf(FERROR,"Number of files: %d\n", stats.num_files);/ /+ rprintf(FERROR,"Number of files transferred: %d\n",/ / stats.num_transferred_files);/ /- rprintf(FINFO,"Total file size: %s bytes\n",/ /+ rprintf(FERROR,"Total file size: %s bytes\n",/ / human_num(stats.total_size));/ /- rprintf(FINFO,"Total transferred file size: %s bytes\n",/ /+ rprintf(FERROR,"Total transferred file size: %s bytes\n",/ / human_num(stats.total_transferred_size));/ /- rprintf(FINFO,"Literal data: %s bytes\n",/ /+ rprintf(FERROR,"Literal data: %s bytes\n",/ / human_num(stats.literal_data));/ /- rprintf(FINFO,"Matched data: %s bytes\n",/ /+ rprintf(FERROR,"Matched data: %s bytes\n",/ / human_num(stats.matched_data));/ /- rprintf(FINFO,"File list size: %d\n", stats.flist_size);/ /+ rprintf(FERROR,"File list size: %d\n", stats.flist_size);/ / if (stats.flist_buildtime) {/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "File list generation time: %.3f seconds\n",/ / (double)stats.flist_buildtime / 1000);/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "File list transfer time: %.3f seconds\n",/ / (double)stats.flist_xfertime / 1000);/ / }/ /- rprintf(FINFO,"Total bytes sent: %s\n",/ /+ rprintf(FERROR,"Total bytes sent: %s\n",/ / human_num(total_written));/ /- rprintf(FINFO,"Total bytes received: %s\n",/ /+ rprintf(FERROR,"Total bytes received: %s\n",/ / human_num(total_read));/ / }/ / if (verbose || do_stats) {/ / rprintf(FCLIENT, "\n");/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "sent %s bytes received %s bytes %s bytes/sec\n",/ / human_num(total_written), human_num(total_read),/ / human_dnum((total_written + total_read)/(0.5 + (endtime - starttime)), 2));/ /- rprintf(FINFO, "total size is %s speedup is %.2f\n",/ /+ rprintf(FERROR, "total size is %s speedup is %.2f\n",/ / human_num(stats.total_size),/ / (double)stats.total_size / (total_written+total_read));/ / }/ But the problem is i have an error 23 when i use rsync.
Hello, I have written a little script that's would email me all errors. rsync -vah --delete --stats <sources> <destination> > /var/log/sauvegarde/listoffile.log 2> /var/log/sauvegarde/errors.log My problem is i want to have the stats in my mail. Is it possible to redirect --stats to STDERR. I have tryed to do this : /--- rsync-2.6.9/main.c 2006-10-14 01:46:32.000000000 +0200/ /+++ rsync-2.6.9.new/main.c 2007-02-06 19:28:08.000000000 +0100/ /@@ -227,39 +227,39 @@/ / {/ / if (do_stats) {/ / rprintf(FCLIENT, "\n");/ /- rprintf(FINFO,"Number of files: %d\n", stats.num_files);/ /- rprintf(FINFO,"Number of files transferred: %d\n",/ /+ rprintf(FERROR,"Number of files: %d\n", stats.num_files);/ /+ rprintf(FERROR,"Number of files transferred: %d\n",/ / stats.num_transferred_files);/ /- rprintf(FINFO,"Total file size: %s bytes\n",/ /+ rprintf(FERROR,"Total file size: %s bytes\n",/ / human_num(stats.total_size));/ /- rprintf(FINFO,"Total transferred file size: %s bytes\n",/ /+ rprintf(FERROR,"Total transferred file size: %s bytes\n",/ / human_num(stats.total_transferred_size));/ /- rprintf(FINFO,"Literal data: %s bytes\n",/ /+ rprintf(FERROR,"Literal data: %s bytes\n",/ / human_num(stats.literal_data));/ /- rprintf(FINFO,"Matched data: %s bytes\n",/ /+ rprintf(FERROR,"Matched data: %s bytes\n",/ / human_num(stats.matched_data));/ /- rprintf(FINFO,"File list size: %d\n", stats.flist_size);/ /+ rprintf(FERROR,"File list size: %d\n", stats.flist_size);/ / if (stats.flist_buildtime) {/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "File list generation time: %.3f seconds\n",/ / (double)stats.flist_buildtime / 1000);/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "File list transfer time: %.3f seconds\n",/ / (double)stats.flist_xfertime / 1000);/ / }/ /- rprintf(FINFO,"Total bytes sent: %s\n",/ /+ rprintf(FERROR,"Total bytes sent: %s\n",/ / human_num(total_written));/ /- rprintf(FINFO,"Total bytes received: %s\n",/ /+ rprintf(FERROR,"Total bytes received: %s\n",/ / human_num(total_read));/ / }/ / if (verbose || do_stats) {/ / rprintf(FCLIENT, "\n");/ /- rprintf(FINFO,/ /+ rprintf(FERROR,/ / "sent %s bytes received %s bytes %s bytes/sec\n",/ / human_num(total_written), human_num(total_read),/ / human_dnum((total_written + total_read)/(0.5 + (endtime - starttime)), 2));/ /- rprintf(FINFO, "total size is %s speedup is %.2f\n",/ /+ rprintf(FERROR, "total size is %s speedup is %.2f\n",/ / human_num(stats.total_size),/ / (double)stats.total_size / (total_written+total_read));/ / }/ But the problem is i have an error 23 when i use rsync.
On 2/7/07, LORAND Beno?t <benoit.lorand@blorand.org> wrote:> Hello, > > I have written a little script that's would email me all errors. > rsync -vah --delete --stats <sources> <destination> > > /var/log/sauvegarde/listoffile.log 2> /var/log/sauvegarde/errors.log > > My problem is i want to have the stats in my mail. Is it possible to > redirect --stats to STDERR. > > I have tryed to do this : > > /--- rsync-2.6.9/main.c 2006-10-14 > 01:46:32.000000000 +0200/ > /+++ rsync-2.6.9.new/main.c 2007-02-06 > 19:28:08.000000000 +0100/ > /@@ -227,39 +227,39 @@/ > / {/ > / if (do_stats) {/ > / rprintf(FCLIENT, "\n");/ > /- rprintf(FINFO,"Number of files: > %d\n", stats.num_files);/ > /- rprintf(FINFO,"Number of files > transferred: %d\n",/ > /+ rprintf(FERROR,"Number of files: > %d\n", stats.num_files);/ > /+ rprintf(FERROR,"Number of files > transferred: %d\n",/ > / stats.num_transferred_files);/ > /- rprintf(FINFO,"Total file size: %s > bytes\n",/ > /+ rprintf(FERROR,"Total file size: %s > bytes\n",/ > / human_num(stats.total_size));/ > /- rprintf(FINFO,"Total transferred > file size: %s bytes\n",/ > /+ rprintf(FERROR,"Total transferred > file size: %s bytes\n",/ > / > human_num(stats.total_transferred_size));/ > /- rprintf(FINFO,"Literal data: %s > bytes\n",/ > /+ rprintf(FERROR,"Literal data: %s > bytes\n",/ > / > human_num(stats.literal_data));/ > /- rprintf(FINFO,"Matched data: %s > bytes\n",/ > /+ rprintf(FERROR,"Matched data: %s > bytes\n",/ > / > human_num(stats.matched_data));/ > /- rprintf(FINFO,"File list size: > %d\n", stats.flist_size);/ > /+ rprintf(FERROR,"File list size: > %d\n", stats.flist_size);/ > / if (stats.flist_buildtime) {/ > /- rprintf(FINFO,/ > /+ rprintf(FERROR,/ > / "File list > generation time: %.3f seconds\n",/ > / > (double)stats.flist_buildtime / 1000);/ > /- rprintf(FINFO,/ > /+ rprintf(FERROR,/ > / "File list transfer > time: %.3f seconds\n",/ > / > (double)stats.flist_xfertime / 1000);/ > / }/ > /- rprintf(FINFO,"Total bytes sent: > %s\n",/ > /+ rprintf(FERROR,"Total bytes sent: > %s\n",/ > / human_num(total_written));/ > /- rprintf(FINFO,"Total bytes > received: %s\n",/ > /+ rprintf(FERROR,"Total bytes > received: %s\n",/ > / human_num(total_read));/ > / }/ > > / if (verbose || do_stats) {/ > / rprintf(FCLIENT, "\n");/ > /- rprintf(FINFO,/ > /+ rprintf(FERROR,/ > / "sent %s bytes received %s > bytes %s bytes/sec\n",/ > / human_num(total_written), > human_num(total_read),/ > / human_dnum((total_written + > total_read)/(0.5 + (endtime - starttime)), 2));/ > /- rprintf(FINFO, "total size is %s > speedup is %.2f\n",/ > /+ rprintf(FERROR, "total size is %s > speedup is %.2f\n",/ > / human_num(stats.total_size),/ > / (double)stats.total_size / > (total_written+total_read));/ > / }/ > > > But the problem is i have an error 23 when i use rsync.You could just pipe STDOUT and STDERR to the same file and email that to yourself. To prevent getting the list of files transfered, you could make rsync be quiet by removing -v and adding -q. rsync > out.log 2>&1 -- Aaron W Morris (decep)
On Wed, Feb 07, 2007 at 05:19:16PM +0100, LORAND Beno?t wrote:> I have written a little script that's would email me all errors. > rsync -vah --delete --stats <sources> <destination> > > /var/log/sauvegarde/listoffile.log 2> /var/log/sauvegarde/errors.log > > My problem is i want to have the stats in my mail. Is it possible to > redirect --stats to STDERR.Since you're using 2.6.9, try using --log-file=FILE for the list of changed files (instead of using -v), and then email the entire output of stdout and stderr combined. ..wayne..
Maybe Matching Threads
- more filelist --stats
- [patch] suggestions for -v option
- [PATCH] prevent negative "time left" values with --progress when file grows
- rsync: omit summary with a single -v
- Rsync 2.6.9 Develops Conflict Between --stats, I think --delete-after and Local Filesystem Replication