Как синхронизировать/резервировать файлы при обнаружении изменений?

Другое решение, без использования awk и только jq

Хитрость заключается в использовании--сырого -ввода , который будет считывать файл как массив строк.

Таким образом, для каждой строки проверьте, символ | здесь вырежьте строку и проанализируйте часть как строку json

jq -j --raw-input  '
   . as $line | 
    if index("|") >= 0  
    then  
      [.[:index("|")-1],.[index("|")+2:] ]  
    else 
      empty
    end | 
   [.[0], (.[1] | fromjson | to_entries |.[0].value ) ] |
  .[0], " | \"",.[1], "\"\n" '  /tmp/file.log
0
01.07.2020, 13:49
2 ответа
1
18.03.2021, 23:23

Итак, у меня есть план. Я хочу резервное копирование / синхронизацию, но если я удалю, меня не будет. Итак, псевдокод выглядит примерно так

while inotify create/modify #executes command if create/modify 
do
   if `du source` is greater than `du destination` then #size of source is gt than dest
      rsync source/ dest -av
done

Наконец-то сделал это

#!/bin/bash
if [[ `pgrep -f $0` != "$$" ]]; then
    echo "Exiting"
    exit
fi
while inotifywait -r -e modify,create /root/MachineYadav 1>/dev/null 2>/dev/null
do
    echo "0" > /tmp/KaliLinuxBackup
    clear && sleep 1.5 && echo "Backing up" && sleep 0.5
    if [[ `du -s /root/MachineYadav/ | awk '{print $1}'` -gt `du -s /root/Mount/Window/Kali-Mirror | awk '{print $1}'` ]]; then
        echo "1" > /tmp/KaliLinuxBackup
        rsync /root/MachineYadav/ /root/Mount/Window/Kali-Mirror/ -av 
    fi
    clear && echo "Finishing" && sleep 0.5
done

У меня будет аналогичная реализация с некоторыми изменениями. Спасибо @Artem S. Tashkinov и @fra -san

0
18.03.2021, 23:23

Теги

Похожие вопросы