Revolving around the core of technology
Is it possible to install Syncrify server on a Raspberry Pi 4B (4 GB RAM) running Raspberry Pi OS 32 bit?
If no why not?
If yes how? (any different than standard Linux install instructions?)
After atempting install I can't pull up web interface http://localhost:5800 results in "This site can't be reached" Maybe port 5800 is in use by VNC I think. How can I change to a different port if I can't pull up interface after fresh install?
Well the install certainly did not work. This is what I got when I uninstalled:
pi@raspberrypi:/opt/Syncrify $ sudo ./Uninstall.sh
[.] Stopping Syncrify...
Stopping Sycrify Incremental Backup Solution...
Sycrify Incremental Backup Solution was not running.
./Uninstall.sh: 27: ./Uninstall.sh: [[: not found
./Uninstall.sh: 32: ./Uninstall.sh: [[: not found
./Uninstall.sh: 38: ./Uninstall.sh: [[: not found
./Uninstall.sh: 44: ./Uninstall.sh: [[: not found
No LSB modules are available.
./Uninstall.sh: 70: ./Uninstall.sh: [[: not found
./Uninstall.sh: 70: ./Uninstall.sh: Distributor: not found
./Uninstall.sh: 123: ./Uninstall.sh: [[: not found
./Uninstall.sh: 168: ./Uninstall.sh: [[: not found
./Uninstall.sh: 168: ./Uninstall.sh: Distributor: not found
My guess is that I could try the "Other Operating Systems" download instead.
Anyone try that on a Pi?
Holy c#$% ....just wow....just look at it. I can't believe I did it. I haven't tested it but this looks promising.
Syncrify running in Raspberry Pi OS.
Okay interesting that my previous posts show as anonymous. I forgot to enter my name when posting.
For anyone wanting to repeat this here is my notes on how I did it. I borrowed heavily from the Synology install instructions. But a lot had to be modified to fit the particulars of the Raspberry OS. I still highly recommend reviewing the Synology install instrucitons. If you follow the Synology instructions and then substitute with my notes below for each step then you'll basically have the Pi instructions.
Here are my Syncrify install on Raspberry Pi OS instructions:
sudo apt install openjdk-8-jre
- Make sure that Java 8 is the default JRE
sudo update-alternatives --config java
- Edit /etc/environment
- add the following line:
- Check environment variable
- Create Syncrify install directory
sudo mkdir /opt/Syncrify
- Change to created folder
- Download installaiton files to Syncrify folder
sudo wget http://www2.synametrics.com/files/Syncrify/SyncrifyOther.tar.gz
- uncompress installation
sudo tar -zxvf SyncrifyOther.tar.gz
- Change execute permision on run.sh
sudo chmod +x run.sh
- copy run.sh to launchAtBoot.sh so that its path can be modified
sudo cp run.sh launchAtBoot.sh
- Change execute permision on launchAtBoot.sh
sudo chmod +x launchAtBoot.sh
- Edit lauchAtBoot.sh so that first line to after bash is:
- Edit launchAtBoot.sh so that last line includes path to java
/usr/bin/java -server -Xmx512m -cp [.....and the rest of the line that is there]
- Asume root prviledge to edit configuration file
- Edit AppConfig.xml file and change the following lines:
<parameter name="jvmPath" type="1" value="/usr/bin/java"></parameter>
<parameter name="ntServiceCommand" type="1" value="/opt/Syncrify/launchAtBoot.sh"></parameter>
- Create SyncrifyTemp folder on USB drive for tmp files
- Create server.properties file in config directory
- add the following line to the server.properties file:
Only thing left is to schedule launchAtBoot.sh to start automatically. There are several ways to automatically boot a script on boot. I'm not sure yet of this step which of several methods I prefer. Any recommendations? I've seen cron -e recommended and there this is init.d or systemd or rc.local...making my head spin. This final launch detail is getting me. I think it would be nice if it launched with a method that checks runlevel and can greacefully shutdown if it detects a reboot or shutdown.
I am glad you were able to run Syncrify on Raspberry Pi. Other users will definitely find your post very helpful. Let us know if you have further questions.
This is a follow up now that I'm completed my Syncrify Raspberry Pi install. A few things need to be corrected in my instructions above...
The USB drive needs to be hard mounted with fstab so it ends up in /mnt/ and not in /media/pi/ and this is important because when starting up Syncrify as a service automatically the USB drive needs to be present and when the drive is not hard mounted then it isn't present when Linux services start up. Also on the Raspberry Pi the USB hard drive doesn't even get mounted until you login. So you have to to mount the USB drive. This requires chaning all references above from /media/pi/ to /mn/MountedVolumeName and you'll be set. If you don't know how to mount a USB drive with fstab then look it up as it involves a few steps in getting the USB drive UUID and PARTUUID and stuff.
The next point to wrap up is how to make Syncrify start up automatically as a service. I mentioned that there were several options. I choose I think the best option which is to use systemd to create a service for Syncrify. Creating a systemd service is simple and there are a lot of guides on how to do this....but it didn't work at first for me. The trick is to create the correct syncrify.service profile file. The Syncrify application is a forking application because first Java is envoked and then the Syncrify parts run on top of that. This required the systemd service profile file to includ type=forking and that was not immediately apparent to me and the error messages I was getting were really not helping. So below is a copy of the systemd service profile file that I created that worked. It was also necessary to include the Restart=always in order for the Syncrify web interface restart to work.
The following is the contents of my /etc/systemd/system/syncrify.service
After creating the above syncrify.service file here are the commands to enable, disable, start and stop manually, and how to get the status of the service to see if launched successfully or if you have problems.
sudo systemctl enable syncrify
sudo systemctl disable syncrify
sudo systemctl start syncrify
sudo systemctl stop syncrify
systemctl status syncrify (sudo not required)
(ctrl-c to break out)
It works really nicely. I recommend it. The Rasperry Pi 4B when you run htop shows the following during a backup process (nothing else running on Pi):
Here is a screnshot of what Syncrify running as a service looks like.
Very interesting post. Thank you George. I have a question for you: what is the benefit of running Syncrify on a Raspberry Pi vs a regular Linux machine. Obviously, a Raspberry Pi takes much less room but since you're using Syncrify for backups, what is the benefit of storing this data on this platform vs a NAS?
If you already have a NAS or you already have a spare computer to mount drives on for backup then there is little need for a Raspberry Pi to be your backup system.
But I think that there are many benefits some of which are...
Reasons for running Syncrify backup server on a Raspberry Pi:
- You don't own a NAS or other spare computer for backup
- You don't want the high expense of a NAS or other traditional computer/server
- You don't want to dedicate the space for a NAS or traditional computer/server
- You want to save on energy costs
- You may already own a Raspberry Pi or two or more (you can never have just one as these things are so capapble and affordable)
- A Raspberry Pi in a Flirc aluminum case (no fan) is totally silent.
- You can easily deploy a Raspberry Pi to be your offsite backup at a friend or family member's house and they are likely to not mind having your Pi and small hard drive, it goes over in acceptance much better than sticking them with an big computer that requires 24/7 operation.
- There are likely other reasons that I haven't though of
Here are the htop system resources results when the system is idle. No backup task running. Mind you this Pi now is also running Pi-hole and still not a blip of CPU resources used. The system is basically at 0% CPU as the only thing really using up resources is htop itself at 3.2% of one of the 4 cores.
Since backups are incremental after the initial seed, you can actually make use of the Raspberry Pi for other things. That is why I decided to install Pi-hole on it after having fully tested Syncrify on a clean Raspberry Pi OS. Looks like there is still more that could be done with this Pi. But I do want to be careful to not slow down the Internet experience now that this is also a Pi-hole, so not sure about putting Pi-hole and Plex on the same system. I think remote VPN server might be a good use though.
Important Tip: If you have decided to run the Raspberry PI OS graphical user interface I recommend that you do not keep the browser open. When the browser is open depending on what you left open and how many tabs are open will use up considerable resources. So close that browser when you are done.
I got syncrify working on my rpi3 via the linux installer. My install directory was /opt/Syncrify (default) and I installed as root.
I had to modify the run.sh file in /opt/Syncrify to point to the correct java directory. Originally it was /jre/bin/java and I had to change it to /usr/lib/jvm/java-8-openjdk-armhf/jre/bin/java.
To get auto startup working I had to modify the syncrify file in /etc/init.d/ to set PIDDIR="/opt/Syncrify". I then had to manually create syncrify.service following the guide here: https://web.synametrics.com/app?operation=blog&st=dispblog&fn=00000000015_1379442050989&BloggerName=mike
The example file given should work as long as you correctly set up the /etc/init.d/syncrify file.