rfm - RepRapFirmware FileManager [duetbackup successor]
-
Write script for bash (GNU/Linux) to backup all files.
#!/bin/bash # ---------------------------------- Parameters ------------------------------------- temp="temp" # Temp folder for backup output="backup_rrf_$(date +%F_%H-%M-%S).tgz" # Archive name for backup # ----------------------------------------------------------------------------------- mkdir -p $temp # Create temp folder ./rfm ls | while read line # Parse list of files and folders do if [[ `echo "$line" | grep "\[f\]"` ]] # Processing files then filename=`echo ${line##* }` ./rfm download "$filename" "$temp/$filename" echo "$filename - File downloaded" elif [[ `echo "$line" | grep "\[d\]"` ]] # Processing folders then foldername=`echo ${line##* }` ./rfm backup -exclude overlays "$temp/$foldername" "$foldername" echo -e "\n" else echo "$line - Strange line" fi done tar czPf "$output" "$temp" # Create archive rm -rf "$temp" # Delete temp folder
-
-
-
I am trying out rfm. I go into the folder that has rfm in it and do:
./rfm backup -domain 192.168.1.163
this backs up the /sys folder on the duet card that is at 192.168.1.163.
If I want to back up the macro folder on that Duet, what should the command look like? Based on the help section of rfm, I was trying ./rfm backup /macros -domain 192.168.1.163 but I get 'directory not found'. -
Hi @wilriker
This is a great project and I would like to implement it on my system, but I (generally) manage the system remotely.
Specifically, I have a Mac (in the house) and use the Microsoft Remote Desktop (RD) app to connect to my Surface Pro (in the shed), via a wired network, which is hard-wired to the Duet3 MB6HC control board running my CNC machine (I don't run the CNC machine remotely, before anyone asks!)
The first question I have is, should I install rfm on the Mac and run it from there, or install it on the Surface Pro and run rfm from the Mac (via RD), and the second question is, which version should I use if it's installed on the Mac?
I'm running RRF version 3.4.4
Thank you
-
@jens55 said in rfm - RepRapFirmware FileManager [duetbackup successor]:
If I want to back up the macro folder on that Duet, what should the command look like? Based on the help section of rfm, I was trying ./rfm backup /macros -domain 192.168.1.163 but I get 'directory not found'.
You need to switch the order of parameters:
rfm backup -domain 192.168.1.163 <local-path> 0:/macros
Note that
local-path
is mandatory if you specify a remote path. -
@Nightowl said in rfm - RepRapFirmware FileManager [duetbackup successor]:
The first question I have is, should I install rfm on the Mac and run it from there, or install it on the Surface Pro and run rfm from the Mac (via RD), and the second question is, which version should I use if it's installed on the Mac?
Actually this just depends on what is more convenient for you. As long as
rfm
is able to connect to RRF via network this does not matter.I personally would probably install it on the Surface Pro just because it is closer. But again, it just boils down to what is more convenient for you. Mine is installed on a Raspberry Pi that is lingering around somewhere in the house and runs a background task that periodically checks if it can backup anything or not.
If you want to install it an the Mac use
darwin
binary. Although this will not work on a M1 MacBook. When I compiledrfm
the last time there were not M1's around AFAIR. -
Thank you, @wilriker
Mine's an i5, so that would be OK - but logic, and your comments, tell me I should install it on the PC!
Thank you
-
@wilriker, thank you!
-
@wilriker
Further to my last post, I'm a bit of a biff with these newfangled things, so I need a couple of simple steps to follow - at least I think I do.I understand the file has to be run from the command line, but where would be the best folder to locate rfm? I appreciate it can be accessed wherever it is, but I would like to pre-configure everything, so it would be a simple process of 'clicking a shortcut' for the card to be 'backed up'.
I'm assuming all the folders (firmware, gcodes, macros, sys and www) should be backed up, but does rfm process them all (if the correct parameters are set, clearly) or do I need to run rfm for each folder?
This is what I think...
rfm backup Weeble O:/ //Libraries/CNC Files/Backups
...where Weeble is the device name, O:/the root of the SD card and afp://SynologyHome._afpovertcp._tcp.local/Libraries/CNC Files/Backups where the files are to be backed up to?
BTW, I haven't tested this yet!
Thank you.
EDIT: Is there a naming protocol for the backup files, or will they be overwritten every time they're backed up? P
-
@wilriker I am getting the following error when I run the RFM tool. I have attempted on mac and PC, and have tried multiple variants of the command, too. My duet is a Duet3MB6HC in SBC mode running RRF 3.4.5.
Here is a screenshot of the output from terminal:
Best,
Garth -
@Garth_42
rfm
is intended to be used with boards in standalone-mode. AFAIR SBC builds do not support the full HTTP interface for file management plus any SBC has much more powerful means to interact with files than I could ever implement. -
@Nightowl Sorry for the very late reply. First of all
rfm
has an extensive help page, accessible viarfm help
as well asrfm help <command>
to get more details on specific commands.rfm backup Weeble 0:/ //Libraries/CNC Files/Backups
looks somehow wrong to me. Most likely you missed
-device
in front of "Weeble". Also beyond that you have further three parameters whererfm
only expects two, namely the local path (to write the backup to) and the remote path a.k.a. path on the Duet (specifically in this order). So your command rather likely should look likerfm backup -device Weeble //Libraries/CNC 0:/
but where would be the best folder to locate rfm?
As you said you put it on your PC (so I assume Windows), to have it most easily working you need to add the directory you store
rfm
in into yourPATH
(I haven't used Windows in a decade so please bear with me if I cannot tell you how to do that on recent editions). On Windows there is (or at least was) no standard way of puting custom binaries anywhere so again this is left to you where to actually put the binary (sorry).I'm assuming all the folders should be backed up, but does rfm process them all
rfm
will simply backup everything recursively under the given remote path. In your case0:/
will simply back yup every single file it can find on the SD card.Is there a naming protocol for the backup files, or will they be overwritten every time they're backed up?
They will be overwritten continuously with each run. It will leave remotely removed files locally though unless you also pass the parameter
-removeLocal
. -
Awesome, thank you @wilriker
You are completely forgiven.
The backup folder will actually be on a NAS (hopefully), but you've given me plenty to get on with.
Thanks again
-
@wilriker haha, thanks for the reply. This is good to know, I was creating an rclone script to do backup on the SBC. I saw this and my interest was piqued.
-
@wilriker
Sorry to have to keep asking silly questions, but i've tried to run RFM from the folder it's installed in, from the command line in Windows, and I get the error:-domain is mandatory
I've used both the IP address and domain name of the control board, i.e.:
rfm backup -device Weeble //Libraries/CNC File O:/
and
rfm backup -device 192.168.1.121 //Libraries/CNC File O:/
With the same result.
Have I missed something (else!) please?
Thank you
-
@Nightowl
rfm
uses two sources to get the parameters to connect to a device. For convenience means it will save connection settings (-domain
as well as-port
and-password
) in a config file. By default it uses a device calleddefault
for that.You have to provide this information (only
-domain
is actually necessary, the other two can use the default value in 99% of the times) once and after that you can omit these because they are saved in the config file. So you need to callrfm backup -domain <network address of your duet> -device Weeble ...
once to init the config file. After that you can omit
-domain ...
and just use-device Weeble
- or unless you want to address multiple devices you can also omit the-device Weeble
part and from the start and use thedefault
device.After that it should work.
-
-
I just discovered rfm, nice job.
I am using it on a Mac running Ventura. I am finding that it won't resolve the host name of my railcore.
If I use the IP address it works fine but if I use the name railcore.local it doesn't find it. railcore.local does work for a ping from the command line and from a browser.
-
I just released
rmf
v1.2.0 yesterday.It contains a bug fix for the
backup
command when the amount of files in a directory on the SD card exceed the amount that can be returned by RRF in one single response -rfm
used to go into an endless loop then.Besides that it is not possible to abort any operation by sending an interrupt signal (pressing CTRL+C on the console). I recommend everyone to update to the latest version.
-
-
-
-
-
Hi @wilriker, thank you very much for that tool! I use it 3-4 times a day!
I have a tiny feature request. I would like to have one more switch:
--version | -v
That would be very helpful.
Cheers, Chriss