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