Jump to content

flickerfly

Members
  • Content count

    33
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by flickerfly


  1. Here is what I ended up coming up with. It should be put in /etc/systemd/system/

     

    https://github.com/flickerfly/My-Script-Collection/blob/50b70155000cfe86c18e2587d85cd80e12a866fa/rcl.service

    [Unit]
    Description=Retrospect backup client
    After=network.target local-fs.target system.slice systemd-journald-dev-log.socket basic.target sysinit.target systemd-journald.socket
    Before=shutdown.target graphical.target multi-user.target
    
    [Service]
    ExecStart=/usr/local/retrospect/client/retroclient 
    ExecStop=/usr/local/retrospect/client/retrocpl -stop
    Restart=on-failure
    RestartSec=60s
    
    [Install]
    WantedBy=multi-user.target
    
    • Like 1

  2. It appears that client 10.05 works fine on Ubuntu 16.04 server, but the startup scripts do not operate properly.

    $ sudo systemctl start rcl
    Failed to start rcl.service: Unit rcl.service not found.
    $ sudo service rcl start
    Failed to start rcl.service: Unit rcl.service not found.

    Has anyone built startup scripts for the systemd yet?  

    • Like 3

  3. Here is my little script I'm using to clean up a server before I install the latest client. I hope it help out. I'm also working on my own installer as I'm finding the current one for Ubuntu continues to be really buggy. If you are interested, pm me. 

    #!/bin/bash
    
    # Stop the running client
    if [ -f "/usr/local/dantz/client/retrocpl" ]; then                                                                                                              
      /usr/local/dantz/client/retrocpl -stop > /dev/null                                                                                                            
    fi                                                                                                                                                              
    if [ -f "/usr/local/retrospect/client/retrocpl" ]; then                                                                                                         
      /usr/local/retrospect/client/retrocpl -stop > /dev/null                                                                                                       
    fi
    
    # Remove the running client from startup 
    update-rc.d -f rcl remove
    update-rc.d -f retroclient remove
    
    # Uninstall rpm or deb versions of th client
    sudo apt-get -y remove retroclient
    sudo apt-get -y remove RetroClient
    sudo yum -y remove retroclient
    sudo yum -y remove RetroClient
    
    # Remove any files that may be lingering about
    rm -rf /usr/local/retrospect/
    rm -rf /usr/local/dantz/
    rm /etc/init.d/rcl
    rm /etc/init.d/retroclient
    
    # Don't remove excludes file cause that comes in handy
    #rm /etc/retroclient.excludes
    
    # Don't remove state file or you have to reactivate client at server
    #rm /var/log/retroclient.state
    rm /var/log/\retroclient.history
    rm /var/log/retroclient.history
    rm /var/log/retroclient.log
    rm /var/log/retroclient.*.gz
    rm /var/log/retropds.log
    
    rm /usr/local/man/man1/retroc*
    rm /usr/man/man1/retroc*
    rm /usr/share/info/retroclient.info.gz
     

     

     


  4. I'm working on upgrading all my linux clients to the 10.5.x version of the RetroClient. Typically I have not removed the retroclient.state file, but on one it just happened for some reason. Anyway, as I'm trying to add the client back into Retrospect Server by IP, the test works fine showing the client name, IP and version; but when I click "Add" I get the message "Sorry, couldn't add the backup client, error -519 (network communication failed)". This is a virtual machine on a VMWare environment like all my other clients. I have tried removing the state file again, completely removing all files related to retrospect and installing again and I'm getting the same results no matter what. One difference that I wonder if it is related, the server is under heavy load. Swapping that load elsewhere isn't currently an option. 

     

    I see others in a physical network have moved their machines around and found that there was some grumpiness in the network that caused this error. I'm in a virtual network so that seems an awkward diagnosis.

     

    What should I be trying to get this client reconnected? 

     

    In my /var/log/retrospect.log file I get the following each time I try to add. I have the log level turned up to 9 for this.

    2015-10-14T15:08:55: NetCheckNewInterfaces: Handle 10 open
    2015-10-14T15:08:56: NetCheckNewInterfaces: Handle 10 closed
    2015-10-14T15:08:56: connListener: starting thread connAccept
    2015-10-14T15:08:56: connListener: Handle 8 open
    2015-10-14T15:08:56: SThreadSpawn: starting thread 1532163840
    2015-10-14T15:08:56: Remote connection established by X.X.5.192:55964
    2015-10-14T15:08:56: connSetOptions: Changing TCP_NODELAY from 0 to 1
    2015-10-14T15:08:56: NetSockAdd: adding socket 8 to interface 2
    2015-10-14T15:08:56: *** netPrintList: interface = 127.0.0.1:0
    2015-10-14T15:08:56: ***               socket 6
    2015-10-14T15:08:56: *** netPrintList: interface = X.X.65.43:0
    2015-10-14T15:08:56: ***               socket 9
    2015-10-14T15:08:56: ***               socket 5
    2015-10-14T15:08:56: ***               socket 8
    2015-10-14T15:08:56: connTCPConnection: conn = 1207962272, code = 112, tid = 0, count = 4
    2015-10-14T15:08:57: connTCPConnection: conn = 1207962272, code = 112, tid = 0, count = 4
    2015-10-14T15:09:00: connTCPConnection: conn = 1207962272, code = 104, tid = 0, count = 36
    2015-10-14T15:09:00: connLogin: successful
    2015-10-14T15:09:00: connTCPConnection: non-stream packet too large: 229185216
    2015-10-14T15:09:00: NetSockDel: removing socket 8
    2015-10-14T15:09:00: connDoLogout: logged out
    2015-10-14T15:09:00: connAccept: socket 8 deleted from interface 2
    2015-10-14T15:09:00: sThreadExit: exiting thread 1532163840
    2015-10-14T15:09:00: NetCheckNewInterfaces: Handle 8 open
    2015-10-14T15:09:01: NetCheckNewInterfaces: Handle 8 closed
    2015-10-14T15:09:05: NetCheckNewInterfaces: Handle 8 open
    2015-10-14T15:09:06: NetCheckNewInterfaces: Handle 8 closed
    

     

     
    • Like 3

  5. I'm getting "Error -540" while doing Block level incremental backups of a Ubuntu 14.04 linux client.

     

    I note here that there was a work around for this many years ago and it was eventually resolved in the last version fo the linux client, but perhaps the same thing has returned?

     

    History:

    http://forums.retrospect.com/index.php?/topic/18634-error-540/. 

    • Like 1

  6. I've managed to install it, but testing the client on this one machine running Ubuntu 12.04.5 has proven problematic. Another 12.04 machine with the version 9 client has been fine.

     

    Whenever the server connects to the client, it is reserved but fails to respond locking up the client.

     

    This line gets placed in /var/log/retroclient.log

    25 11:16:37: CreateNewProcess: execl() of /usr/local/retrospect/client/retropds.23 failed, errno = 2

    and the relevant processes look like this, notice the defunct process

    $ sudo service rcl status
    Server "GTv001":
            Version 9.5.0.113
            reserved by CLGR2 for Preparing...
            back up according to normal schedule
            currently on
            readonly is off
            exclude is off
            1 connections, 1 authenticated
    25 13:06:19: PmcClose: Handle 3 closed
    $ ps -ef |grep retr
    root     11354     1  0 12:54 pts/1    00:00:00 /usr/local/retrospect/client/retroclient
    root     14068 11354  0 12:56 pts/1    00:00:00 [retroclient] <defunct>
    $ pstree -p 11354
    retroclient(11354)─┬─retroclient(14068)
                       ├─{retroclient}(11360)
                       ├─{retroclient}(11361)
                       ├─{retroclient}(11362)
                       ├─{retroclient}(11363)
                       ├─{retroclient}(11364)
                       ├─{retroclient}(11768)
                       ├─{retroclient}(11769)
                       └─{retroclient}(13555)
    $ pstree -p 14068
    retroclient(14068)

     

    I've tried uninstalling the client using this blunt little script, clearing out the processes it left behind and reinstalling.
     #!/bin/sh
    
    /usr/local/retrospect/client/retrocpl -stop
    /usr/local/dantz/client/retrocpl -stop
    
    rm -rf /usr/local/retrospect/
    rm -rf /usr/local/dantz/
    rm /etc/init.d/rcl
    rm /var/log/retroclient.*
    
    rm /usr/local/man/man1/retroc*
    rm /usr/man/man1/retroc* 
    rm /usr/share/info/retroclient.info.gz 
    

    Any idea what can be done for this error? 

     

     

    • Like 4

  7. Here's lots of thoughts tossed into the installer script. It includes the idea of handling both architectures in a single script, breaking out the checks at the beginning of the installer, some code consistency clean up, the pgrep instead of pidof, removing some code that wasn't needed and calling it an upgrade instead of an install when appropriate in at least one place.

     

    Do with it as you wish.

    Install.txt


  8. Some other notes:

    • The client now gets installed in /usr/local/retrospect/.
    • The upgrade installer leaves the old /usr/local/dantz/ directory behind when it puts the /usr/local/retrospect/ directory in place. If you run those scripts you'll still be using the old client, consider deleting it.
    • Running 'pkill retroclient' after the installer may help clear up some defunct processes left behind by the installer.
    • I can't find a clean way to report the client version installed. retrocpl --help lists it, but along with lots of other text. Workaround: ./retrocpl --help|grep version|awk '{ print $4 }'
    • 'retroclient' no longer lists the version in the help output. The help output also seems to be missing the ip binding and the daemon options. man page also doesn't note anything about these options. 

    I'm tossing in a few more changes to the script also that I'll pass along here in a little bit if you want to wait on distributing it.


  9. The current Installer doesn't properly catch if I'm not running as root. It throws the error "./Install.sh: 18: [: Illegal number:" and keeps on going." It's a simple fix. It might be as easy as putting quotes around the 0, but I cut and pasted from one of my own scripts.

     

    Here's a fix for line 18 in diff format.

    18c18
    < if [ "$(id -u)" != "0" ] || [ ! -d "/usr/local" ] || [ ! -f ./RCL.tar ]; then
    ---
    > if [ "$UID" -ne 0 ] || [ ! -d "/usr/local" ] || [ ! -f ./RCL.tar ]; then
    

    This can be duplicated on 64-bit Ubuntu 12.04. (I know it's not supported, but it doesn't take much to accomadate.)

     

    The next problem is in lines 45 and 151. It only errored on my on line 151 "./Install.sh: 151: ./Install.sh: /sbin/pidof: not found", but the same issues exists at 151. Basically "pidof" doesn't exist on Ubuntu 12.04 or 14.04. pgrep is a comparable replacement and I believe it is supported by both the Debian and RH types.

     

    Also, I noted that the ARCH stuff wasn't accurate, but also not used in the script. Anyway, I fixed that. It would be pretty easy to have an RCL-64.tar and an RCL-32.tar in the same package and rework the script to decompress the proper one according to the architecture report.

     

    Attached is a diff of the changes I made to make use of pgrep and the full file with changes. I had to use a txt extension to get them uploaded so you'll need to change those.

     

    retroclient-install-fixes.txt

    Install.txt

     

    Stuff not fixed in my changes:

     

    I've also seen another problem on both Ubuntu 12.04 and 14.04 when running "sudo service rcl status". The output includes this error at the end, "19 13:55:10: PmcOpenLocal: Handle 3 closed".

     

    I might also note the lack of a "restart" option which is one of my biggest annoyances from the 7.7 client. While you're in there fixing this, perhaps we could get that tidbit also.

     

    Hope that's all useful to someone.

    • Like 1

  10. Yeah, that's easier if you're just doing it once. I don't think you need the 386 versions of libc6 and libncurses even. I bring up new machines often enough that I like having a package to drop in that is consistent with my expectations of all packages.

     

    I entirely agree that Retrospect's poor support for Linux is less than inspiring. Unfortunately, I'm in an environment where lack of linux support seems to reflect poorly on linux instead of Retrospect. Either way, my job is to make it work first and encourage improvements second. We're moving towards backup systems that simply do whole VMs without care of the underlying OS. I understand Retrospect is doing some of that in the latest versions, but our experience with it thus far has been poor. In other words, it isn't looking good for Retrospect, except price.


  11. To create the package follow the steps below.  This is basically what is posted elsewhere, but I'm adding the dependency to the deb because I'm forgetful and expect computers to fill in that gap.

    sudo apt-get install alien
    sudo alien -g --scripts linux_client-7_7_100.rpm
    cd retroclient-7.7.100
    sudo vim debian/control
    # change the Architecture from i386 to amd64 on line 7
    # add libstdc++6:i386 to the Depends line separated by a comma on line 8
    # see below if this is confusing
    sudo debian/rules binary
    

    That drops retroclient_7.7.100-2_amd64.deb in the same directory as you originally ran alien from. If I were you I'd rename that retroclient_Ubuntu144.deb since it is Ubuntu 14.04+ specific. It might work on 13.10. I forget when they changed the 32-bit stuff.

     

    To install from your newly created .deb package run this procedure. It is different procedure from elsewhere because of the dependency you built in above. If you can remember the package name exactly and remember to install libstc++:i386 ahead of time, you can skip the second step and do the more traditional steps. I'm sure I usually won't so this expects my failure and smooths over my failures. 

    #This will fail with the dependency issues if you haven't resolved them yet.
    sudo dpkg -i retroclient_7.7.100-2_amd64.deb
    
    #This will install the dependencies and automatically take you back to configuring RetroClient.
    sudo apt-get -f install
    
    #This will check the status to confirm it setup the startup scripts and started rcl.
    sudo service rcl status 

    Look at you, you beautiful, smart person you. You defeated the system and installed the retrospect client on a system that the vendor doesn't support. 

     

    -------------------------------------------------------

     

    Here is the content of my debian/control file exactly in case the instructions above were unclear.

    Source: retroclient
    Section: alien
    Priority: extra
    Maintainer: me <me@ubuntu>
    
    Package: retroclient
    Architecture: amd64
    Depends: ${shlibs:Depends}, libstdc++6:i386
    Description: A Retrospect client application
     This is the client application to be used in
     conjuction with the Retrospect application for Windows.
     This application will enable backing up, restoring,
     duplicating, and scanning files or entire volumes.
     .
     (Converted from a rpm package by alien version 8.90.)
    

  12. I'm playing around with getting the proper 32-bit libs for Ubuntu setup in the latest LTS. The old trick of just install ia32-libs doesn't work because that package doesn't exist. It looks like running 'sudo apt-get install libstdc++6:i386' will bring the 32-bit c++ libraries needed. Has anyone else played around with this and have more information on the process of installing this? 

    • Like 2
×