添加一个文件:
vi /usr/njmlmysql/njmlsql.sh
写入:
#!/bin/sh
# Database info
DB_USER="root"
DB_PASS="********"
DB_HOST="119.29.164.212"
DB_NAME="niujinmali"
# Others vars
#数据库bin
BIN_DIR="/usr/bin" #the mysql bin path
#将备份的sql文件写入以下目录
BCK_DIR="/home/mysqlBackup" #the backup file directory
#备份数据库的命名
DATE=`date +%F`
# TODO
# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
#备份数据库
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql
#备份数据库为压缩文件
#$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql.gz
测试备份是否成功:
cd /usr/njmlmysql
执行:
./njmlsql.sh
然后去home目录下看一下:(用winscp 登入ssh )
以上说明备份成功了。
写入一个定时启动任务:crontab -e
#每天5点执行备份 和每8个小时备份一次,一天备份四次
00 05 * * * /bin/sh /usr/njmlmysql/njmlsql.sh
* */8 * * * /bin/sh /usr/njmlmysql/njmlsql.sh
后话:
#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。
比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。
#!/bin/bash同理。