VPS自动备份数据库到FTP的脚本代码_linux shell

1)确保自己在home目录(若不是,运行:cd /home)
2)新建backup文件夹(命令:mkdir backup)
3)新建脚本backup.sh
vi backup.sh
复制以下代码(复制完后:wq!要保存):

复制代码 代码如下:

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=123456 #mysql密码
FTP_USER=vmvps #ftp用户名
FTP_PASS=123456 #ftp密码
FTP_IP=ftp.vmvps.com #ftp地址
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot #要备份的网站数据
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +”%Y%m%d”).tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -5day +”%Y%m%d”).tar.gz
OldWeb=Web_$(date -d -5day +”%Y%m%d”).tar.gz

#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +”%Y%m%d”).tar.gz /home/backup/Web_$(date -d -3day +”%Y%m%d”).tar.gz
cd /home/backup

#导出数据库,一个数据库对应一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES' | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 – > ${db}.sql.gz)
done

#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz

#压缩网站数据
tar zcf /home/backup/$WebBakName $WEB_DATA

#上传到FTP空间,删除FTP空间5天前的数据
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName

4)测试脚本运行如何
sh backup.sh

5)给脚本添加权限
chmod +x backup.sh

6)添加每日自动运行命令(每天00:00自动运行)
crontab -e
00 00 * * * /home/backup.sh

时间: 2024-09-28 14:42:53

VPS自动备份数据库到FTP的脚本代码_linux shell的相关文章

linux中mysql备份shell脚本代码_linux shell

第一步:在你的linux服务器中定义备份目录: 复制代码 代码如下: mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup 第二步:下面是最重要的一步了,就是写定时备份脚本. 复制代码 代码如下: vi dbbackup.sh 代码文件如下 复制代码 代码如下: #!/bin/sh# mysql data backup script## use mysqldump --help,get more detail.#BakDir=/root/back/

判断文件是否存在的shell脚本代码_linux shell

实现代码一. #!/bin/sh # 判断文件是否存在 # link:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi # 这里的-d

批量转换目录下文件编码的shell脚本代码_linux shell

一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改. 例子: 复制代码 代码如下: #!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){    for file in `ls $1`   

linux中VPS自动备份数据库实现方法

 代码如下 复制代码 #!/bin/bash D="/root/backup" T=`date +%Y%m%d` if [ ! -d "${D}/${T}" ]; then  /bin/mkdir "${D}/${T}" fi /usr/local/mysql/bin/mysqldump --host=localhost --user=root --password=数据库密码 要备份的数据库名 > "${D}/${T}/${T}

Linux oracle数据库自动备份自动压缩脚本代码_linux shell

复制代码 代码如下: #!#backup.sh##系统名称sysname=gzsyspath=/home/oracle/databak/$sysname/v_date=$(date '+%Y%m%d%H%M%S')logfile=$syspath/backup.$v_date.logecho backup_time>>$logfiledate '+%Y-%m-%d %H:%M:%S' >> $logfile#数据库使用情况echo "backup gznxt"&

备份网站内容的shell脚本代码_linux shell

备份网站内容 复制代码 代码如下: #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir $bakdir/$dirname

自动重启服务的shell脚本代码_linux shell

复制代码 代码如下: #!/bin/bash if [ ! -f /tmp/down_count ];then echo "0" > /tmp/down_count fi curl -I tomcat-host -o "/tmp/status" >/dev/null 2>&1 code=`awk 'NR==1 {print $2}' /tmp/status` if [ "$[code]" -ge 500 ];then d

ssh expect自动登录的脚本代码_linux shell

实现:ssh远程登录,每次都要指定一堆用户名和密码,现要求实现自动登录.登录流程:本地A 先登录到 B 再由B 登录到最终的C 如下: 复制代码 代码如下: #!/usr/bin/expect -fset timeout 30spawn ssh Bexpect "password:"send "passwd@\r"expect "]*"send "ssh name@C -p port\r"expect "passwo

ftp自动上传脚本分享_linux shell

  复制代码 代码如下: #!/bin/sh   if   [   $#   !=   2   ]   then       echo   "Usage:   ftp-put.sh  binary  192.192.4.101"    exitfiftp -n<<! # -n: 不受.netrc文件的影响,<<  : 使用即时文件重定向输入open $2 # para2 : 192.192.4.101user root root # usrid, passwor