Backup skriptai
Atsarginių kopijų skriptas (su archyvų rotacija), kopija į aplanką:
#!/bin/bash #################################### # # Backup to NFS mount script with # grandfather-father-son rotation. # #################################### # What to backup. backup_files="/home /var/spool/mail /etc /root /boot /opt" # Where to backup to. dest="/mnt/backup" # Setup variables for the archive filename. day=$(date +%A) hostname=$(hostname -s) # Find which week of the month 1-4 it is. day_num=$(date +%d) if (( $day_num <= 7 )); then week_file="$hostname-week1.tgz" elif (( $day_num > 7 && $day_num <= 14 )); then week_file="$hostname-week2.tgz" elif (( $day_num > 14 && $day_num <= 21 )); then week_file="$hostname-week3.tgz" elif (( $day_num > 21 && $day_num < 32 )); then week_file="$hostname-week4.tgz" fi # Find if the Month is odd or even. month_num=$(date +%m) month=$(expr $month_num % 2) if [ $month -eq 0 ]; then month_file="$hostname-month2.tgz" else month_file="$hostname-month1.tgz" fi # Create archive filename. if [ $day_num == 1 ]; then archive_file=$month_file elif [ $day != "Saturday" ]; then archive_file="$hostname-$day.tgz" else archive_file=$week_file fi # Print start status message. echo "Backing up $backup_files to $dest/$archive_file" date echo # Backup the files using tar. tar czf $dest/$archive_file $backup_files # Print end status message. echo echo "Backup finished" date # Long listing of files in $dest to check file sizes. ls -lh $dest/
Paleisti skriptą galime
sudo bash backup.sh
arba įdedant į cron kad pasileistų automatiškai:
sudo crontab -e
pridedame:
# m h dom mon dow command 0 0 * * * bash /kelias/iki/failo/backup.sh
Atsarginių kopijų skriptas duomenis saugoti į juosta:
#!/bin/bash #################################### # # Backup to tape drive script. # #################################### # What to backup. backup_files="/home /var/spool/mail /etc /root /boot /opt" # Where to backup to. dest="/dev/st0" # Print start status message. echo "Backing up $backup_files to $dest" date echo # Make sure the tape is rewound. mt -f $dest rewind # Backup the files using tar. tar czf $dest $backup_files # Rewind and eject the tape. mt -f $dest rewoffl # Print end status message. echo echo "Backup finished" date
Atstatymas iš juostos (norime atstatyti etc/hosts failą į /tmp/etc/hosts:
mt -f /dev/st0 rewind tar -xzf /dev/st0 -C /tmp etc/hosts
Naudingos nuorodos:
- http://www.cyberciti.biz/tips/how-to-backup-mysql-databases-web-server-files-to-a-ftp-server-automatically.html
- http://www.cyberciti.biz/faq/ubuntu-linux-mysql-nas-ftp-backup-script/
- https://help.ubuntu.com/8.04/serverguide/C/backups.html
- https://help.ubuntu.com/8.04/serverguide/C/backups-shellscripts-rotation.html
- https://help.ubuntu.com/10.10/serverguide/C/backups-shellscripts-rotation.html