linux下自动备份MySQL数据并上传到FTP上的shell脚本

代码如下:

#!/bin/bash
#Mysql autobackup shell
#
#
#----------------set the mysql login parameters
dbuser=root
dbpasswd=
dbserver=localhost
dbname=fwserver2008
dbopt=--opt
backupdir=/dbbackup/
#-----------------set the FTP paramters , 0 no send to a ftp server,1 send to a ftp server
copytoftp=1
ftpserver=172.16.25.2
ftpuser=linux
ftppasswd=123456
#----------------set the backpfile paramters
fileprefix=fwserver
dumpfilename=$backupdir$fileprefix`date +%F_%H%M%S`.sql
newfile=$fileprefix-`date +%F_%H%M%S`.tar.gz
keepdays=10
#------------------write the operater command to log file
logfile=/var/log/_mysqlbackup.log
logtmp=/var/log/_mybackup.tmp

#===============================================
if [ ! -d $backupdir ]
then
echo "$backupdir is not exist, then make ..." >> $logfile
mkdir -p $backupdir
fi
echo "start====================================>">>$logfile
echo "Beginning backup `date +%F %T`" >>$logfile
echo "Delete $keepdays days ago files ..." >>$logfile
find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} ;
echo "Deleted Backup file is :">>$logfile
cat $logtmp >>$logfile
echo "Delete old file Success!" >>$logfile
if [ -f $backupdir$newfile ]
then
echo "$newfile backup exist, backup stop ..." >>$logfile
else
if [ -z $dbpasswd ]
then
mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename
else
mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename
fi
tar czvf $backupdir$newfile $dumpfilename >>$logfile 2>&1
echo "$backupdir$newfile Backup Success!" >>$logfile
rm -fr $dumpfilename
if [ $copytoftp = 1 ]; then
if [ -z $ftpserver ];then
echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile
exit 1
elif [ -z $ftpuser ];then
echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile
exit 2
elif [ -z $ftppasswd ]; then
echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile
exit 3
else
echo "Start copy to Ftp server ...." >> $logfile
ftp -i -n <<end_ftp
open $ftpserver
user $ftpuser $ftppasswd
lcd $backupdir
hash
prompt
put $newfile
close
bye
end_ftp
fi
fi
echo "End=======================================">>$logfile
fi
# the end of the auto backup script

(0)

相关推荐

  • Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

    1. ftp自动登录批量下载文件. 复制代码 代码如下: #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 192.168.1.171user guest 123456binarycd /home/datalcd /home/databackuppromptmget *closebye! 2. ftp自动登录上传文件. 复制代码 代码如下: ####本地的/home/databackup to

  • 使用Linux shell脚本实现FTP定时执行批量下载指定文件

    使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用mget结合正则表达式下载文件 #获取昨天日期,为后面下载使用 T=`date -d yesterday +%Y%m%d` 4.连接FTP服务器,到指定路径下下载文件 ftp -n <<EOF open $ip user $u $p binary cd /hour #远程服务器文件目录 lcd /h

  • linux和windows下的自动ftp脚本(shell bat)

    一.先来看linux下的: 复制代码 代码如下: #! /bin/bashcd /ftp/CURRENTDATE=` date +%Y%m%d `YESTERDAY=` date -d yesterday +%Y%m%d `THREEDAYAGO=` date -d '3 days ago' +%Y%m%d `#echo $TWODAYAGOftp -n -i 34.97.34.3 << !user ftpuser ftpuserbinmput $YESTERDAY.*delete $THRE

  • Linux shell ftp命令根据文件日期下载文件的方法

    需求:ftp获取远程数据的文件,根据文件的创建时间点下载文件. 可以自行扩展根据文件的大小等其他需求. 知识点总结: 1.获取文件的时间: ls -lrt|awk '{print $6" "$7" "$8}' 时间内容: Sep  8 16:03 2.时间格式转换 date -d "Sep 8 16:03" +%Y%m%d%H%M 转换结果: 201709081603 3.指定文件名,正则匹配 pattern="${month}.*.d

  • linux下实现ftp自动备份shell脚本

    利用here文档 复制代码 代码如下: #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/yhb get v bye EOF 解释: -i :关闭多文件传输过程中的交互提示,所以不会再有让用户输入用户名和密码的提示 -n:阻止了初始连接时的自动登录 -v:将ftp命令设置为verbose模式,从而可以在会话时看到其中的命令 在本例中使用用户名yun和密码yun2011登录

  • linux下自动备份MySQL数据并上传到FTP上的shell脚本

    复制代码 代码如下: #!/bin/bash #Mysql autobackup shell # # #----------------set the mysql login parameters dbuser=root dbpasswd= dbserver=localhost dbname=fwserver2008 dbopt=--opt backupdir=/dbbackup/ #-----------------set the FTP paramters , 0 no send to a

  • Linux下自动备份MySQL的方法

    Linux下可以利用crontab系统每天定时备份MySQL数据库,以下是详细步骤: 1.创建保存备份文件的路径/mysqldata #mkdir /mysqldata 2.创建/usr/sbin/bakmysql文件 #vi /usr/sbin/bakmysql 输入 rq=` date +%Y%m%d ` tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql 或者写成 rq=` date +%Y%m%d ` mysqldump –all-dat

  • Http上传与Ftp上传的区别详解

    1:Http上传http上传就是通过http协议来向服务器上传文件,所以服务器端应该有一个处理客户端请求的页面.添加一个FileUploadHandler.ashx的文件来处理客户端请求.代码如下: 复制代码 代码如下: /// <summary>/// FileUploadHandler 的摘要说明/// </summary>public class FileUploadHandler : IHttpHandler{    private const string UPLOAD_

  • 讲解Linux系统下如何自动备份MySQL数据的基本教程

    1.先创建一个数据库备份目录: mkdir backup cd backup mkdir mysqlbackup cd mysqlbackup 2.创建备份脚本 vi mysqlautobackup 3.编写脚本: filename=`date +%Y%m%d` /mysql的bin目录/mysqldump --opt 数据库名 -u(mysql账号) -p(mysql密码) | gzip > /备份到哪个目录/name$filename.gz 说明:以上采用gzip压缩,name可随意写,注意

  • Linux 每天自动备份mysql数据库的方法

    /usr/bin为mysql安装目录 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -opt mysql -u root -proot|gzip >/mysql_data_bak/name$filename.gz 这里注意了 一般的: ************

  • Window系统下自动备份MySql数据库方法

    Window下可以使用Bat批处理文件来对MySql进行备份操作,备份时一般数据量较大的情况可以使用复制文件的方式,但是这种方式要求服务器停机或者停止写入命令,不大使用.如果数据不大,推荐使用mysqldump命令来备份数据库文件为sql文件.使用方法为mysqldump –uroot –ppassword dbname > db_date.sql.编写bat文件,使用window的任务计划来定时执行bat文件就可以实现MySql数据库的定时备份.Bat文件如下: 复制代码 代码如下: [htm

  • Java上传文件FTP服务器代码实例

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. 在实际的应用中,通常是通过程序来进行文件的上传. 1.实现java上传文件到ftp服务器中 2.新建maven项目 添加依赖 <dependency> <groupId>comm

  • shell实现自动备份mysql、整站数据的两个脚本分享

    案例一:shell+cron实现MySQL自动备份且自动删除N天前备份 复制代码 代码如下: #!/bin/shDUMP=/usr/local/mysql/bin/mysqldumpOUT_DIR=/home/ldl/xxx/backup/LINUX_USER=ldl DB_NAME=ldlDB_USER=ldlDB_PASS=xxx#How much days backup mostDAYS=1 #Core of scriptcd $OUT_DIRDATE=`date +%Y_%m_%d`OU

  • Linux下自动删除过期备份和自动异地备份的脚本

    目录 每天自动删除过期备份 每天定时异地备份 每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/backup/" # 删除最后修改时间为30天以前的备份文件夹 find $location -mtime +30 -type d | xargs rm -rf {} -mtime:文件内容最后一次修改的时间,+30 代表大于30天的.其他参数可选: 访问

  • linux 服务器自动备份脚本的方法(mysql、附件备份)

    一.创建backup.sh脚本文件 #!/bin/sh SOURCE_FOLDER=/data DB_FOLDER=/data/db BACKUP_FOLDER=/data/backup TM=`date +%Y%m%d%H%M%S` echo start to dump mysql database and backup files at $TM # delete old sql backup files cd $DB_FOLDER rm -rf $DB_FOLDER/*.sql #dump

随机推荐