一个Linux数据库 备份脚本
#
export BACKUP_PATH=/backup
export BACKUP_DATABASE=webmetadata
#
export TODAY=`date +%Y_%m_%d`
export BACKUP_FILE_PATH=$BACKUP_PATH"/"$BACKUP_DATABASE"_"$TODAY.sql
#
if [ -f "$BACKUP_FILE_PATH" ]; then
echo You have already finished today''s backup, please see file $BACKUP_FILE_PATH.
else
echo Begin to backup metadata database...
mysqldump --single-transaction --quick -u root --password=xxxx $BACKUP_DATABASE > $BACKUP_FILE_PATH
echo Ending the backup operation.
fi
脚本功能:
每天仅仅对数据库进行最多一次备份。
此脚本的设计进行了比较大的模块化,将数据库名以及存储路径名这个变化量独立出来了,仅仅需要更改这2个变化量就可以备份不同的数据库。
特别注意到上述脚本中两个Script string变量的累加方式:
一个Linux数据库 备份脚本
$BACKUP_PATH"/"$BACKUP_DATABASE"_"$TODAY.sql
组合时不同变量之间的常量使用""括起来进行累加。
而脚本行 TODAY=`date +%Y_%m_%d` 将产生形如 2011-09-30格式这样的数据。
-------------------------------------------------------------------------------------------------------------------------------------------
Linux的条件句格式形如:
if xxx ; then
...
elif yyy; then
....
else
....
fi
Mysql下面备份所有的数据库脚本:
mysqldump -u root -ptmppassword --all-databases > /tmp/all-database.sql
mysqldump -u root -p --all-databases --lock-tables=false > /opt/data/home/all-database.sql
这个可以批量作业,在系统整体迁移时非常有效。