Neliels skripts, lai izveidotu mapes backupu noteiktos laikos, un glabātu noteiktu dienu skaitu.
fails backup.sh
#!/bin/sh
cd /home/lietotajs/backups
tar -zcvf latest-backup.tgz /folderis/ko/backupot
mv latest-backup.tgz $(date +%y%m%d%H)-backup.tgz
find . -name '*-backup.tgz' -mtime +5 -delete
Tātad paskaidrojums -
1) aiziet uz mapi, kur glabāsies backupi
2) izveido arhīvu no norādītās mapes
3) pārsauc failu, lai tā nosaukumā būtu datums un laiks
4) izdzēš failus, kuri ir vecāki par norādīto dienu skaitu (5), lai neglabātu ļoti vecus failus un lieki neaizņemtu vietu
Tālāk labojam /etc/crontab
Un pievienojam rindu:
45 4 * * * root /home/lietotajs/backup.sh
Protams, nomainam pareizo ceļu. Root lietotāju var nomainīt pret jebkuru citu, kuram ir lasīšanas tiesības mapē, kuru vajag backupot, un rakstīšanas tiesības backup.sh norādītajā mapē, kur tās saglabā. root var lasīt un rakstīt visur.
Saglabā failu, un ja visi ceļi in ir norādīti pareizi, visam būtu jāstrādā
Ja neesi pazīstams ar cron laikiem - pirmās 5 kolonnas ir laiks:
minūtes stundas diena(mēneša) mēnesis diena(nedēļas)
Tātad konkrētā rinda veidos backupu katru dienu, 4:45 no rīta.
Laboja mad, labots 9x
0 #125.03.2015. 21:34
Nedaudz pielaboju Busybox vajadzībām, jo tur nav find ar -mtime, toties ir dažas citas lietas un sasodīti apgraizīts sed un xargs :shura:
Esmu radījis monstru