我在 Linux 系统上使用 MySQL 作为应用程序的数据库系统。每周我都会更新系统并备份(mysqldump)更改的数据库(2 个数据库)。然后我将它们压缩成 .tar.gz 并将生成的文件通过 ftp 传输到远程服务器,之后我从 Linux 服务器上删除原始备份和 tar.gz 文件。作为 Unix 系统的完全新手,我想知道是否可以编写一个脚本来自动完成所有这些操作,即执行以下步骤。
1) 将数据库 A 备份为 A.sql (mysqldump) 2) 将数据库 B 备份为 B.sql (mysqldump) 3) tar -cvzf dest.tar.gz A.sql B.sql 4) 将 dest.tar.gz ftp 到[电子邮件保护] 5)从本地服务器删除A.sql,B.sql,dest.tar
如果我能朝着正确的方向迈出一些步伐,那就太好了!提前谢谢,蒂姆
答案1
下面是一个基本示例。执行 mysqldump 脚本的示例有很多,我只是快速粘贴了一个。
/bin/bash -e #!/bin/bash -e # #定义转储文件名 MYSQLBACKUP=/tmp/dbackup #执行MySQL转储 #将适当的用户、密码和路径替换为 mysqldump、socket 等。 #Drop 加入您喜欢的方法 - tar 与 gzip 等等。 /usr/bin/mysqldump --all-databases -S /tmp/mysql.sock -uUSER -pPASSWORD | gzip -c > $MYSQLBACKUP #FTP备份文件到远程FTP服务器 #将192.1681.1.1替换为远程服务器的IP地址 #更换用户和密码 回显“打开192.168.1.1 用户 用户 密码 冗长 cd /某些/目录/在/远程/服务器上 垃圾桶 迅速的 输入 $MYSQLBACKUP 关闭 退出” | ftp -n >> /tmp/somelogfile #删除传输后的文件。需要先确保它是通过 ftp 传输的 rm-f“MYSQL备份”
答案2
您在 remoteserver.com 上有 ssh 吗?- 如果有,使用 ssh 工具套件中的 scp 编写脚本会更容易,并且可以使用 ssh 密钥,这样您无需密码即可登录。这样,复制文件/对其进行 rsync 只是一个命令。