参考 http://www.levil.cn/post/28/ ,对这篇博客的命令做了几处细微修改,执行成功
下面这个命令保存为backup.sh文件,web工程在/opt/tomcat7/webapps下,projectname是工程名,改成自己的, 数据库mysql安装在/usr/local/mysql下, 用户名root,密码mysqlpassword,数据库mysqldatabase,导出的数据库名字为backup.sql . 今天是2013年1月2日, web工程打包形如web_130102.tar.gz, mysql数据库文件打包为sql_120102.sql.
打包完成复制到/opt/backup文件下,并通过ftp上传到服务器,在这里,服务器ip为ftpip,端口为ftpport,用户名为ftpuser,密码ftppass,
#!/bin/bash
cd /opt/tomcat7/webappsWebBakName=web_$(date +%y%m%d).tar.gz
tar zcvf $WebBakName projectname
SqlBakName=sql_$(date +%y%m%d).tar.gz
/usr/local/mysql/bin/mysqldump -u root --password=mysqlpassword mysqldatabase >backup.sql
tar zcvf $SqlBakName backup.sql
cp $SqlBakName /opt/backup/
cp $WebBakName /opt/backup/
ftp -i -n ftpip ftpport << EOF
user ftpuser ftppass
binary
hash
put $WebBakName
put $SqlBakNamequit
EOF
rm -f backup.sql $WebBakName $SqlBakName
接着输入chmod +x backup.sh给脚本添加执行权限,再输入:crontab -e编辑任务自动开始时间,比如输入:
00 05 * * 1 /home/backup.sh 就代表每周1的上午5点整执行该自动备份操作。
crontab命令其实很简单,第一位为分,第二位为小时,第三位是天,第四位为月份,第五位为星期, 用过java里面quartz框架就会觉得它很简单。不太清楚的话可以百度一下。