I know how "we all hate perl" (tm) and this doesn't fix your problem directly ...
I got fed up of our backup system (USB ZFS, if more than one receive happened on the pool the USB drives would go offline and take out the base ZFS pool ... Solaris 10) The guy who used to do it used cron, and because the files changed size he couldn't guarantee when they would finish ... he went on holiday for 2 weeks and after 3 days of the servers crashing I rewrote his whole system using the attached scripts. the data gets rsynced from the servers into a folder on the receiver in /snapshots/fromserver/tempstore with a filename related to the zfs-slice that the snapshot is from and to, and the date at the end. e.g. /snapshots/fromserver/tempstore/zfsreports11Sep2012 we run "universal-restore.pl" on the receiving server (generally nohup'd) it loops around (every 30 minutes) and when it sees the file appear it restores it. rsync transfers the files as hidden with an odd extension and renames them when the sync is complete, which works well in this case because it doesn't try to restore a file until it is sync'ed. when the file is restored it then moves the zfs snapshots to an archive directory that includes the Month and Year: e.g. /snapshots/fromserver/archive/Sep2012/zfsreports11Sep2012 probably not what you want, but might work for you. Jon On 10 September 2012 20:55, Florian <flor...@acw.at> wrote: > Hello, > > I want to switch from zfs send and receive with ssh todo it with netcat. > > The send and receive process works without problems, but netcat won't work. > > Server A is oi151a6-1 > Server B is oi151a5-2 > > I use netcat with these commands: > Server A: > /root@oi151a6-1:~# zfs list -t snapshot > NAME USED AVAIL REFER MOUNTPOINT > ... > tank/raid1-2@replication_09-09-12-19:40:00 0 - 16K - > tank/raid1-2@nc_test05 0 - 16K -/ > > Snapshot /tank/raid1-2@replication_09-09-12-19:40:00/ exists already on > Server B (received over ssh) > > /root@oi151a6-1:~# ssh -n -f 192.168.10.201 "/usr/bin/nc -l -p 1337 | > /usr/sbin/zfs receive -F tank/raid1-2"/ > > With the previous command, I can see the netcat process on Server B: > /root@oi151a5-2:~# ps auxww | grep nc > root 838 0.0 0.1 2052 1380 pts/1 S 21:14:42 0:00 grep nc > root 805 0.0 0.2 3664 2384 ? S 21:14:14 0:00 bash -c /usr/bin/nc -l -p 1337 > | /usr/sbin/zfs receive -F tank/raid1-2 > root 806 0.0 0.1 2124 1144 ? S 21:14:14 0:00 /usr/bin/nc -l -p 1337/ > > On Server A: > /root@oi151a6-1:~# zfs send -I tank/raid1-2@replication_09-09-12-19:40:00 > tank/raid1-2@nc_test05 | nc 192.168.10.201 1337/ > > This exits with the following error: > cannot receive: failed to read from stream > > This is only a testing server, so I enabled the user root and enabled root > login for sshd. > > Can someone please help me with my problem? I never used netcat, so I am a > real beginner. > > The funny thing is, when I issue the commands on the local servers, it works > without problems! > Server B: > /root@oi151a5-2:~# ///usr/bin/nc -l -p 1337 | /usr/sbin/zfs receive -F > tank/raid1-2 > > Server A: > //root@oi151a6-1:~# //zfs send -I tank/raid1-2@replication_09-09-12-19:40:00 > tank/raid1-2@nc_test05 | nc 192.168.10.201 1337 > > /Result on Server B: > /root@oi151a5-2:~# zfs list -t snapshot > NAME USED AVAIL REFER MOUNTPOINT > ... > tank/raid1-2@replication_09-09-12-19:40:00 0 - 16K - > tank/raid1-2@nc_test05 0 - 16K -/ > > > Best regards > Florian > > _______________________________________________ > OpenIndiana-discuss mailing list > OpenIndiana-discuss@openindiana.org > http://openindiana.org/mailman/listinfo/openindiana-discuss
_______________________________________________ OpenIndiana-discuss mailing list OpenIndiana-discuss@openindiana.org http://openindiana.org/mailman/listinfo/openindiana-discuss