mysql备份之ibdata

之前我用winscp+计划任务做了一个自己的备份脚本,每次打开自己的电脑就把所有的frm文件备份到本地,但是经过反复测试发现这些文件根本不更新。

一查才发现,原来真正的数据根本不在这些opt\frm文件里。难怪文件尺寸那么小。

但是在data根目录里有个比较大的ibdata文件,经查,innodb引擎是把数据库内容全部放在这个文件里了。之前那些文件只是数据库的配置而已。

看来这脚本得再改一下了。

为了保存多个版本的备份,我把ibdata及数据库的所有frm、Opt都保存到一个文件夹里,当然ibdata在上一层,于是这里就会遇到一个难题,move命令可以把一个文件夹下所有的文件都给移动了,只要加*.*就可以了,但是却无法直接把子文件夹都给移动了。网上有人提供了for语句,我觉得还是太麻烦了。想来想去,直接写死移动哪个文件夹是最简单的,当然,换一个思路,直接把整个文件夹都移动到新文件夹下,每天重建也行。

腾讯没有人工处理申诉机制,却要假装?

我这个域名也不知道是因为之前有人用来做坏事,还是谁暗中害我,恶意投诉,在家里打开都这样,因为我这电脑里有所谓的腾讯电脑管家。

我这个人很随性,这电脑管家是装机商给装的,我无所谓是哪家的安全软件,也懒得管它。结果自己的网站却被它给管上了。

于是天天申诉,腾讯根本没有反应,不知道他们是怎么想的,既然不打算人工处理,何必要搞这么一个入口呢?

fuck

装个pureftp也是醉了

装这个玩意不是为了弄FTP,而是因为wordpress不填ftp不给升级。

所以想装一个ftp给它填上。

结果发现半天也找不到lnmp的安装包路径了,所以想着干脆直接下载一个新的安装。

但是下载1.0.36版下载不成功。

作罢。

翻回来找到了lnmp,用pureftpd.sh安装,安装时让我填3个密码,第1个是数据库密码,第二是用户密码,第三是mysql的ftp密码,后面两个密码死活不知道是什么意思。

反正我填了一样的,但是填了一样也没用,拿ftp软件登录登录不了,拿在线管理器登录也不行。

一急,跑到数据库里把md5密码给改了,但是并没有卵用。还是登录不了,页面是出了,一登录就出502,下载不了。

但是,回到wordpress,发现升级再也没有提示要ftp了!

我也不知道是不是因为我安装过程中改了网站路径的访问权限,导致wordpress可以随便操作文件。还是说因为装了pureftp,wordpress通过lnmp的配置可以直接登录ftp了。扑朔迷离啊。

===================回家更新=====================

后来我用lnmp ftp add命令添加一个新账户以后,就可以用了。然后我跑到数据库里把老用户给删掉了。至于说php的面板,不用也没什么关系。

winscp自动备份脚本法

下文例子讲的是下载文件,但是下载文件夹其实是一样的,不用写什么星号,直接给个路径就行了。文中的引号一定要改成英文的。

如果备份mysql数据库,只要把整个库的文件夹全下载下来,导入的话只要把文件夹传回去重启就OK了。

 

首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录

上传文件:

winscp.exe /console /command “option batch continue” “option confirm off” “open sftp://user:pwd@ip:port” “option transfer binary” “put D:\需要上传的文件路径 /服务器文件存放目录” “exit” /log=log_file.txt

这里为了方便理解,一一解释。

winscp421.exe /console /command     命令名
“option batch continue”           默认批处理
“option confirm off”             关闭提示信息
“open ftp://user:pwd@ip:port”  user:访问用户名 ,pwd:用户密码 ,ip:ip地址,port:端口号  默认22
“option transfer binary”   使用二进制格式传送

log=log_file.txt 日志文件地址
“exit”                     ::执行完命令后退出

注意:以上 command 后的都为参数 需在一行体现  如想分开写 可把命令单独放到一个文件

如:aa.txt

option echo off
option transfer binary
open <sftp_or_ftp>://<user>:<password>@<host_ip>:<port> -privatekey <private_key_file>
cd <remote_dir>
put *.doc
exit

用命令执行该脚本:winscp /script=aa.txt /ini=<WinSCP.ini_location> /log=<log_file>
如果需要配置传输参数,在WinSCP.ini配置,例如PreserveTime=0保持源文件的时间戳

 

下载文件:

一下是下载文件代码,同上传一样,如需单独写脚本可 用如上方式单独保存脚本执行。

CD /d D:\WinSCP
winscp.exe /console /command “option batch continue” “option confirm off” “open sftp://root:root@10.168.38.72:22” “option transfer binary” “get /test.txt D:\sftptest\” “exit” /log=D:\sftptest\log.txt