linux ftp备份(Linux如何利用ssh传送文件至FTP空间进行备份)
一、Linux下mysql数据库备份方法
通过mysql提供的功能
导出
命令:
mysqldump-u用户名-p数据库数据库.sql
示例:
代码如下 **代码
mysqldump-u root-p db1 db1.sql(将数据库db1备份到db1.sql中)
提示输入密码,完成即可。
导入
需要先创建一个空数据库
mysql-u root-p(输入密码后进入mysql)
create database db1;(创建一个名为db1的数据库)
exit(退出mysql)
命令:
mysql-u用户名-p数据库数据库.sql
示例:
代码如下 **代码
mysql-u root-p db1 db1.sql(从备份文件db1.sql中导入数据到数据库db1中)
提示输入密码,完成即可。
通过拷贝文件
如果数据库特别大,可以使用拷贝的方式进行备份,不过不同的*作系统间可能会导致不兼容。
导出
进入mysql目录,打包需要备份的数据库目录
示例:
代码如下 **代码
cd/var/lib/mysql(进入mysql目录)
tar-zcvf db1.tar.gz db1(打包db1目录,如果提示没有权限,在前面加上sudo,提示输入密码后即可)
导入
首先创建一个空数据库,将打包的文件拷贝到mysql目录后解压
示例:
代码如下 **代码
mysql-u root-p(输入密码后进入mysql)
create database db1;(创建一个名为db1的数据库)
exit(退出mysql)
cp db1.tar.gz/var/lib/mysql(将打包文件拷贝到mysql目录下)
cd/var/lib/mysql(进入mysql目录)
tar-zxvf db1.tar.gz(解压到当前目录)
后现在linux中脚本
代码如下 **代码
#!/**n/bash
#Mysql autobackup shell#write by tuspark
#-------------------数据库相关的用户名、密码、需要备份的数据库名、备份目录等
dbuser=root
dbpasswd=XXXXX
dbserver=localhost
dbname=XXXXX
dbopt=--opt
backupdir=/dcbackup/
#-------------------是否开启FTP远程备份,0为否,1为是。
copytoftp=1
ftpserver=XXXXX
ftpuser=XXXXX
ftppasswd=XXXXX
#-------------------以下参数
fileprefix=dcradiusdump
filename=$backupdir`date+%F`.sql
newfile=$fileprefix-`date+%F`.tar.gz
keepdays=10
#-------------------以下为备份时的日志
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 21
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-n$logfile
fi
二、Linux如何利用ssh传送文件至FTP空间进行备份
在Linux系统中,可通过ssh将文件传送到FPT空间中,将一些重要的数据进行备份,那么要如何实现文件的传送呢?小编给大家具体介绍下Linux利用ssh传送文件到FTP空间的方法。
步骤:
假设要备份的目录为/home/wwwroot/aaa/,远程FTP空间的 IP为 55.44.33.22
1.进入到/home/wwwroot/目录
cd/home/wwwroot
2.然后将 aaa目录压缩为 tar.gz文件包 aaa.tar.gz
tar cfz aaa.tar.gz aaa
3.链接FTP
ftp 55.44.33.22
回车,接着输入 FTP用户名,回车,输入FTP密码,链接成功后,应该看到 ftp》
4.上传刚才的 aaa.tar.gz
put aaa.tar.gz
直到反馈说成功即可。
注:如果使用 ftp命令提示该命令不存在
centOS可以直接执行下面的命令,安装 ftp服务一般就可以了:
yum install ftp
通过本文的介绍想必你已经了解了如何使用ssh传送文件至FPT空间,一共需要四个步骤,备份重要文件就是这么简单。
三、如何在Linux服务器中备份
linux系统下使用脚本定时备份数据库,代码如下:
#!/**n/bash
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第
#18行,则默认以tag的方式备份
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date+%y%m%d).tgz
DumpFile="$BackupPath"db$(date+%y%m%d)
OldFile="$BackupPath"db$(date+%y%m%d--date='5 days ago').tgz
echo"-------------------------------------------">>$LogFile
echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile
echo"--------------------------">>$LogFile
#Delete Old File
if [-f$OldFile ]
then
rm-f$OldFile>>$LogFile 2>&1
echo"[$OldFile]Delete Old File Success!">>$LogFile
else
echo"[$OldFile]No Old Backup File!">>$LogFile
fi
if [-f$NewFile ]
then
echo"[$NewFile]The Backup File is exists,Can’t Backup!">>$LogFile
else
case$BackupMethod in
mysqldump*)
if [-z$DBPasswd ]
then
mysqldump-u$DBUser--opt$DBName>$DumpFile
else
mysqldump-u$DBUser-p$DBPasswd--opt$DBName>$DumpFile
fi
tar czvf$NewFile$DumpFile>>$LogFile 2>&1
echo"[$NewFile]Backup Success!">>$LogFile
rm-rf$DumpFile
;;
mysqlhotcopy*)
rm-rf$DumpFile
mkdir$DumpFile
if [-z$DBPasswd ]
then
mysqlhotcopy-u$DBUser$DBName$DumpFile>>$LogFile 2>&1
else
mysqlhotcopy-u$DBUser-p$DBPasswd$DBName$DumpFile>>$LogFile 2>&1
fi
tar czvf$NewFile$DumpFile>>$LogFile 2>&1
echo"[$NewFile]Backup Success!">>$LogFile
rm-rf$DumpFile
;;
*)
/etc/init.d/mysqld stop>/dev/null 2>&1
tar czvf$NewFile$DBPath>>$LogFile 2>&1
/etc/init.d/mysqld start>/dev/null 2>&1
echo"[$NewFile]Backup Success!">>$LogFile
;;
esac
fi
echo"-------------------------------------------"
echo
#lftp-f lftp.sh如果有FTP可同时上传ftp中。
再利用crontab命令生成/var/spool/cron/root文件:
#crontab–e
//打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令
//m h dom mon dow command
//具体意义表示:分钟小时日期月份星期命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)
//如: 10 02***/home/backup/autobackupmysql.sh(表示零晨二点十分执行备份脚本)
四、linux服务器,怎么备份,然后怎么恢复到另一台机子上
服务器安装RAR,对d盘bakup文件夹下所有文件及目录进行压缩,命名为bakup.rar,放到d盘ftp目录下
@echo offd:if not exist ftp md ftp"C:\Program Files\WinRAR\WinRAR.exe" a-r d:\ftp\bakup.rar d:\backup\*.*@echo ok!exit
客户端,自动登录ftp**所有文件到F盘bak目录(ftp用户名密码为test,也可以把mget替换为get**指定文件),
@echo
offf:if not exist bak md f:\bakcd/d f:\bak>f:\bak\ftptmp echo open
192.168.1.254>>f:\bak\ftptmp echo test>>f:\bak\ftptmp echo
test>>f:\bak\ftptmp echo **n>>f:\bak\ftptmp echo
prompt>>f:\bak\ftptmp echo mget*.*>>f:\bak\ftptmp echo
byestart/wait ftp-s:f:\bak\ftptmpdel f:\bak\ftptmpexit
服务器和ftp客户端分别设置计划任务,定时执行。bat批处理可以根据你的具体设置进行修改。