Дойде време за бекъпинга отново 🙂 Вчера осъзнах, че съм забравил да направя каквито и да било бекъпи и всички файлове са реално на 2 машини. Дам пак има вариант за запазване. Понеже машината е тестова няма нужда от кой знае колко пластична система за възстановяване така че се обърнах към стария ми скрипт в който има някаква примитивна функционалност. Общо взето е изключително грозен и му лупсват известни функционалности да речем пази се само 1 архив отделно че кода е доста статичен с тези повторения. Затова реших да го пренапиша, като този път не го надрасквма за 10 минути. В новата си версия вече се подържат 10 стари backup файла. Което си една добра цифра.
#!/bin/bash #path to tar command TAR="$(which tar) cvzf" function backup { #path to beckup folder cd $1 #remove oldest archive rm -r *.10.tgz sleep 3 #time for removing #move old archives, we will save 10 old files for i in {9..1} do let "n=$i+1" mv "www.$i.tgz" "www.$n.tgz" mv "mysql.$i.tgz" "mysql.$n.tgz" mv "cron.$i.tgz" "cron.$n.tgz" done #and move the newest : ) mv www.tgz www.1.tgz mv mysql.tgz mysql.1.tgz mv cron.tgz cron.1.tgz #path to first folder $TAR www.tgz /var/www/ sleep 2 #path to second folder $TAR mysql.tgz /var/lib/mysql/ sleep 2 } #call backup function with folder path arg backup /media/backup1 sleep 2 backup /media/backup2 #E0F
В общи линии нещата са ясни. Имам 2 монтирани дяла за бекъп в /media и в тях се наливат новите архиви като преди това се преименуват старите. Структурата на имената е очевидна и при ls команда ориентира е интуитивен.