add usb backup UI
This commit is contained in:
parent
054244f32c
commit
8e70723310
498
flows/main.json
498
flows/main.json
|
@ -1128,7 +1128,8 @@
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"45e1912a.36a23",
|
"45e1912a.36a23",
|
||||||
"84ac8611.1a6ac8"
|
"84ac8611.1a6ac8",
|
||||||
|
"eaf74a43.fa27d"
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[]
|
[]
|
||||||
|
@ -6776,5 +6777,500 @@
|
||||||
"wires": [
|
"wires": [
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "fd137b53.0c707",
|
||||||
|
"type": "ui_dropdown",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"label": "",
|
||||||
|
"tooltip": "",
|
||||||
|
"place": "Choose USB device",
|
||||||
|
"group": "52d1b77.28369c8",
|
||||||
|
"order": 2,
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"passthru": false,
|
||||||
|
"multiple": false,
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"value": "No Drive Detected",
|
||||||
|
"type": "str"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"payload": "",
|
||||||
|
"topic": "device_path",
|
||||||
|
"x": 1580,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"2ce8de63.49f4c2"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "e2be0960.e56da8",
|
||||||
|
"type": "ui_button",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "Detect drive",
|
||||||
|
"group": "52d1b77.28369c8",
|
||||||
|
"order": 1,
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"passthru": false,
|
||||||
|
"label": "Detect drive",
|
||||||
|
"tooltip": "",
|
||||||
|
"color": "",
|
||||||
|
"bgcolor": "",
|
||||||
|
"icon": "",
|
||||||
|
"payload": "",
|
||||||
|
"payloadType": "str",
|
||||||
|
"topic": "",
|
||||||
|
"x": 890,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"81d4c224.69f82"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "81d4c224.69f82",
|
||||||
|
"type": "exec",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"command": "lsblk --bytes --json --paths --output-all",
|
||||||
|
"addpay": false,
|
||||||
|
"append": "",
|
||||||
|
"useSpawn": "false",
|
||||||
|
"timer": "",
|
||||||
|
"oldrc": false,
|
||||||
|
"name": "detect drive",
|
||||||
|
"x": 1070,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"f0d5e093.ad2c58"
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "f0d5e093.ad2c58",
|
||||||
|
"type": "json",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"property": "payload",
|
||||||
|
"action": "",
|
||||||
|
"pretty": false,
|
||||||
|
"x": 1230,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"7ea3074b.9e0208"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7ea3074b.9e0208",
|
||||||
|
"type": "change",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "set",
|
||||||
|
"p": "options",
|
||||||
|
"pt": "msg",
|
||||||
|
"to": "[payload.blockdevices.children[mountpoint=null].name]",
|
||||||
|
"tot": "jsonata"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": "",
|
||||||
|
"property": "",
|
||||||
|
"from": "",
|
||||||
|
"to": "",
|
||||||
|
"reg": false,
|
||||||
|
"x": 1400,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"fd137b53.0c707"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "446923c0.0fa6a4",
|
||||||
|
"type": "ui_button",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "Backup to USB",
|
||||||
|
"group": "52d1b77.28369c8",
|
||||||
|
"order": 3,
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"passthru": false,
|
||||||
|
"label": "Backup to USB",
|
||||||
|
"tooltip": "",
|
||||||
|
"color": "",
|
||||||
|
"bgcolor": "",
|
||||||
|
"icon": "",
|
||||||
|
"payload": "",
|
||||||
|
"payloadType": "str",
|
||||||
|
"topic": "",
|
||||||
|
"x": 900,
|
||||||
|
"y": 240,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"cab20e8c.a08ff8"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2ce8de63.49f4c2",
|
||||||
|
"type": "function",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "set local",
|
||||||
|
"func": "flow.set(msg.topic,msg.payload);",
|
||||||
|
"outputs": 1,
|
||||||
|
"noerr": 0,
|
||||||
|
"initialize": "",
|
||||||
|
"finalize": "",
|
||||||
|
"x": 1740,
|
||||||
|
"y": 160,
|
||||||
|
"wires": [
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cab20e8c.a08ff8",
|
||||||
|
"type": "function",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "get device_path",
|
||||||
|
"func": "msg.payload = flow.get(\"device_path\");\nreturn msg",
|
||||||
|
"outputs": 1,
|
||||||
|
"noerr": 0,
|
||||||
|
"initialize": "",
|
||||||
|
"finalize": "",
|
||||||
|
"x": 1100,
|
||||||
|
"y": 240,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"68594ee1.dcfec8"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "eb274437.23fc5",
|
||||||
|
"type": "exec",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"command": "sudo /home/pi/PlanktonScope/scripts/bash/usb_backup.sh",
|
||||||
|
"addpay": true,
|
||||||
|
"append": "",
|
||||||
|
"useSpawn": "true",
|
||||||
|
"timer": "",
|
||||||
|
"oldrc": false,
|
||||||
|
"name": "usb_backup.sh",
|
||||||
|
"x": 1440,
|
||||||
|
"y": 260,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"c8d89fce.9ae1f"
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
[
|
||||||
|
"94935a31.a8bcb"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "68594ee1.dcfec8",
|
||||||
|
"type": "switch",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"property": "payload",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "eq",
|
||||||
|
"v": "No Drive Detected",
|
||||||
|
"vt": "str"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": "else"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"checkall": "false",
|
||||||
|
"repair": false,
|
||||||
|
"outputs": 2,
|
||||||
|
"x": 1270,
|
||||||
|
"y": 240,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"a0ba0668.484418"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"eb274437.23fc5"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "a0ba0668.484418",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "dialog",
|
||||||
|
"displayTime": "5",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 1,
|
||||||
|
"ok": "OK",
|
||||||
|
"cancel": "",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 1430,
|
||||||
|
"y": 220,
|
||||||
|
"wires": [
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "c8d89fce.9ae1f",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "top right",
|
||||||
|
"displayTime": "5",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 0,
|
||||||
|
"ok": "OK",
|
||||||
|
"cancel": "",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 1650,
|
||||||
|
"y": 240,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "58f68bf5.3327dc",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "dialog",
|
||||||
|
"displayTime": "5",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 1,
|
||||||
|
"ok": "OK",
|
||||||
|
"cancel": "",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 1810,
|
||||||
|
"y": 280,
|
||||||
|
"wires": [
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "94935a31.a8bcb",
|
||||||
|
"type": "function",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "error message",
|
||||||
|
"func": "switch (msg.payload.code){\ncase 0:\n msg.payload = \"All files successfully copied, you can remove your usb drive!\";\n break;\ncase 1:\n msg.payload = \"There was an error!\";\n break;\ncase 2:\n msg.payload = \"Error: your device is already mounted\"\n break;\ncase 3:\n msg.payload = \"Error while mounting the device\"\n break;\ncase 4:\n msg.payload = \"Error: some files were corrupted during the copy!\"\n break;\n}\nreturn msg;",
|
||||||
|
"outputs": 1,
|
||||||
|
"noerr": 0,
|
||||||
|
"initialize": "",
|
||||||
|
"finalize": "",
|
||||||
|
"x": 1640,
|
||||||
|
"y": 280,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"58f68bf5.3327dc"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "8d704f09.5841b8",
|
||||||
|
"type": "ui_button",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "Purge local",
|
||||||
|
"group": "52d1b77.28369c8",
|
||||||
|
"order": 4,
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"passthru": false,
|
||||||
|
"label": "Purge local data",
|
||||||
|
"tooltip": "",
|
||||||
|
"color": "",
|
||||||
|
"bgcolor": "#AD1625",
|
||||||
|
"icon": "",
|
||||||
|
"payload": "THIS IS GOING TO WIPE ALL THE LOCAL DATA. MAKE SURE YOU DID A BACKUP TO AN USB DRIVE BEFOREHAND.",
|
||||||
|
"payloadType": "str",
|
||||||
|
"topic": "BE EXTRA CAREFUL",
|
||||||
|
"x": 890,
|
||||||
|
"y": 320,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"50f6fb96.7465ec"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "50f6fb96.7465ec",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "dialog",
|
||||||
|
"displayTime": "5",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 1,
|
||||||
|
"ok": "GO BACK",
|
||||||
|
"cancel": "YES I'M SURE, I WANT TO PURGE THE DATA",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 1110,
|
||||||
|
"y": 320,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"421cd75a.07af7"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "a0116bd6.414a58",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "top right",
|
||||||
|
"displayTime": "5",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 0,
|
||||||
|
"ok": "OK",
|
||||||
|
"cancel": "",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 1610,
|
||||||
|
"y": 320,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "421cd75a.07af7",
|
||||||
|
"type": "switch",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"property": "payload",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "cont",
|
||||||
|
"v": "YES I'M SURE",
|
||||||
|
"vt": "str"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"checkall": "true",
|
||||||
|
"repair": false,
|
||||||
|
"outputs": 1,
|
||||||
|
"x": 1270,
|
||||||
|
"y": 320,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"aec34ef9.a1e09"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "aec34ef9.a1e09",
|
||||||
|
"type": "exec",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"command": "rm -R /home/pi/data/*",
|
||||||
|
"addpay": false,
|
||||||
|
"append": "",
|
||||||
|
"useSpawn": "true",
|
||||||
|
"timer": "",
|
||||||
|
"oldrc": false,
|
||||||
|
"name": "rm data",
|
||||||
|
"x": 1420,
|
||||||
|
"y": 320,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"a0116bd6.414a58"
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "eaf74a43.fa27d",
|
||||||
|
"type": "switch",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "",
|
||||||
|
"property": "payload",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "gte",
|
||||||
|
"v": "90",
|
||||||
|
"vt": "num"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"checkall": "true",
|
||||||
|
"repair": false,
|
||||||
|
"outputs": 1,
|
||||||
|
"x": 490,
|
||||||
|
"y": 420,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"24df077a.cb252"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "46d5e78b.15f998",
|
||||||
|
"type": "ui_toast",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"position": "dialog",
|
||||||
|
"displayTime": "10",
|
||||||
|
"highlight": "",
|
||||||
|
"sendall": true,
|
||||||
|
"outputs": 1,
|
||||||
|
"ok": "OK",
|
||||||
|
"cancel": "",
|
||||||
|
"raw": false,
|
||||||
|
"topic": "",
|
||||||
|
"name": "",
|
||||||
|
"x": 790,
|
||||||
|
"y": 420,
|
||||||
|
"wires": [
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "24df077a.cb252",
|
||||||
|
"type": "change",
|
||||||
|
"z": "1371dec5.76e671",
|
||||||
|
"name": "full disk msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "set",
|
||||||
|
"p": "payload",
|
||||||
|
"pt": "msg",
|
||||||
|
"to": "\"Your drive has reached 90% capacity, you should do a backup to an external drive and a purge.\"",
|
||||||
|
"tot": "str"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": "",
|
||||||
|
"property": "",
|
||||||
|
"from": "",
|
||||||
|
"to": "",
|
||||||
|
"reg": false,
|
||||||
|
"x": 630,
|
||||||
|
"y": 420,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"46d5e78b.15f998"
|
||||||
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
|
@ -12,6 +12,15 @@ function update(){
|
||||||
sudo systemctl restart nodered.service
|
sudo systemctl restart nodered.service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function special(){
|
||||||
|
if [[ -f "/etc/systemd/system/usb-mount@.service" ]]; then
|
||||||
|
sudo rm /etc/systemd/system/usb-mount@.service
|
||||||
|
fi
|
||||||
|
if [[ -f "/etc/udev/rules.d/99-local.rules" ]]; then
|
||||||
|
sudo rm /etc/udev/rules.d/99-local.rules
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
${log} "Updating the main repository"
|
${log} "Updating the main repository"
|
||||||
cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; }
|
cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; }
|
||||||
|
|
||||||
|
@ -29,6 +38,7 @@ else
|
||||||
git checkout origin/master scripts/bash/update.sh
|
git checkout origin/master scripts/bash/update.sh
|
||||||
exec scripts/bash/update.sh
|
exec scripts/bash/update.sh
|
||||||
fi
|
fi
|
||||||
|
special
|
||||||
update
|
update
|
||||||
${log} "Done!"
|
${log} "Done!"
|
||||||
fi
|
fi
|
|
@ -10,11 +10,11 @@
|
||||||
# a USB drive.
|
# a USB drive.
|
||||||
|
|
||||||
PATH="$PATH:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin"
|
PATH="$PATH:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin"
|
||||||
log="logger -t usb-backup.sh -s "
|
log="echo "
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
${log} "Usage: $0 device_name (e.g. sdb1)"
|
${log} "Usage: $0 device_path (e.g. /dev/sdb1)"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ if [[ $# -ne 1 ]]; then
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DEVBASE=$1
|
DEVICE=$1
|
||||||
DEVICE="/dev/${DEVBASE}"
|
DEVBASE=$(echo "${DEVICE}" | cut -d'/' -f 3)
|
||||||
SOURCE="/home/pi/data/" # source of files
|
SOURCE="/home/pi/data/" # source of files
|
||||||
|
|
||||||
# See if this drive is already mounted, and if so where
|
# See if this drive is already mounted, and if so where
|
||||||
|
@ -35,7 +35,7 @@ do_mount()
|
||||||
{
|
{
|
||||||
if [[ -n ${MOUNT_POINT} ]]; then
|
if [[ -n ${MOUNT_POINT} ]]; then
|
||||||
${log} "Warning: ${DEVICE} is already mounted at ${MOUNT_POINT}"
|
${log} "Warning: ${DEVICE} is already mounted at ${MOUNT_POINT}"
|
||||||
exit 1
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get info for this drive: $ID_FS_LABEL and $ID_FS_TYPE
|
# Get info for this drive: $ID_FS_LABEL and $ID_FS_TYPE
|
||||||
|
@ -71,7 +71,7 @@ do_mount()
|
||||||
if ! mount -o ${OPTS} "${DEVICE}" "${MOUNT_POINT}"; then
|
if ! mount -o ${OPTS} "${DEVICE}" "${MOUNT_POINT}"; then
|
||||||
${log} "Error mounting ${DEVICE} (status = $?)"
|
${log} "Error mounting ${DEVICE} (status = $?)"
|
||||||
rmdir "${MOUNT_POINT}"
|
rmdir "${MOUNT_POINT}"
|
||||||
exit 1
|
exit 3
|
||||||
else
|
else
|
||||||
# Track the mounted drives
|
# Track the mounted drives
|
||||||
echo "${MOUNT_POINT}:${DEVBASE}" | cat >> "/var/log/usb-mount.track"
|
echo "${MOUNT_POINT}:${DEVBASE}" | cat >> "/var/log/usb-mount.track"
|
||||||
|
@ -94,29 +94,24 @@ do_unmount()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_backup()
|
do_backup()
|
||||||
{
|
{
|
||||||
do_mount
|
do_mount
|
||||||
if [[ -z ${MOUNT_POINT} ]]; then
|
if [[ -z ${MOUNT_POINT} ]]; then
|
||||||
${log} "Warning: ${DEVICE} is not mounted"
|
${log} "Warning: ${DEVICE} is not mounted"
|
||||||
else
|
else
|
||||||
if [[ -f "${MOUNT_POINT}/planktoscope.backup" ]]; then
|
${log} "Starting to backup the local files"
|
||||||
${log} "Starting to backup local files"
|
|
||||||
MACHINE=$(python3 -c "import planktoscope.uuidName as uuidName; print(uuidName.machineName(machine=uuidName.getSerial()).replace(' ','_'))")
|
MACHINE=$(python3 -c "import planktoscope.uuidName as uuidName; print(uuidName.machineName(machine=uuidName.getSerial()).replace(' ','_'))")
|
||||||
BACKUP_FOLDER="${MOUNT_POINT}/planktoscope_data/${MACHINE}"
|
BACKUP_FOLDER="${MOUNT_POINT}/planktoscope_data/${MACHINE}"
|
||||||
${log} "Machine name is ${MACHINE}, backup folder is ${BACKUP_FOLDER}"
|
${log} "Machine name is ${MACHINE}, backup folder is ${BACKUP_FOLDER}"
|
||||||
mkdir -p "$BACKUP_FOLDER"
|
mkdir -p "$BACKUP_FOLDER"
|
||||||
rsync -rtD --modify-window=1 --update "$SOURCE" "$BACKUP_FOLDER"
|
rsync -rtD --modify-window=1 --update "$SOURCE" "$BACKUP_FOLDER"
|
||||||
if ! python3 -m planktoscope.integrity -c "$BACKUP_FOLDER"; then
|
if ! python3 -m planktoscope.integrity -c "$BACKUP_FOLDER"; then
|
||||||
${log} "ERROR: The files were corrupted during the copy!"
|
${log} "ERROR: Some files were corrupted during the copy!"
|
||||||
|
do_unmount
|
||||||
|
exit 4
|
||||||
else
|
else
|
||||||
${log} "All files copied successfully!"
|
${log} "All files copied successfully!"
|
||||||
${log} "Starting purge!"
|
|
||||||
rm -R $SOURCE*
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
${log} "Warning: ${DEVICE} does not contain the special file planktoscope.backup at its root"
|
|
||||||
fi
|
fi
|
||||||
do_unmount
|
do_unmount
|
||||||
fi
|
fi
|
||||||
|
@ -124,5 +119,3 @@ do_backup()
|
||||||
|
|
||||||
|
|
||||||
do_backup
|
do_backup
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue