linux脚本:Linux脚本化备份过程



    本文个任务是创建 shell 脚本来执行必要备份过程目标是对服务器 #1 和 #2 进行完全数据库备份在本文举例中各服务器都运行 MySQL 数据库服务器我们将使用 mysqldump 命令行实用工具将些数据库表导出到个 SQL 导入文件中


清单 10. 服务器 #1 dbbackup.sh shell 脚本
#!/bin/sh # change o the backup_agent directory where data files are stored. cd /home/backup_agent # use mysqldump utility to export the sites database tables mysqldump -u sitedb -pG0oDP@sswrd --add-drop-table sitedb --tables tbl_ccode tbl_machine tbl_session tbl_stats > userdb.sql # compress and archive tar czf userdb.tgz userdb.sql




    在服务器 #2 上我们将设置个类似脚本来备份站点数据库中给出独有表单每个脚本都通过下面步骤标记为可执行:

[server1]:$ chmod +x dbbackup.sh

    在服务器 #1 和 #2 上都有了 dbbackup.sh 文件的后我们返回到离线数据服务器在那里我们将创建个 shell 脚本来各个远程 dbbackup.sh 脚本然后传输压缩(.tgz)数据文件

清单 11. 离线数据服务器上使用 shell 脚本 backup_remote_servers.sh


#!/bin/sh # use ssh to remotely execute the dbbackup.sh script _disibledevent=>调度

    本文个也是最后个任务是调度离线数据存储服务器上 shell 脚本 backup_remote_servers.sh 执行我们将给 cron 调度服务器添加两个条目以要求每天对脚本备份两次次在凌晨 3:34次在晚上 8:34在离线服务器上使用编辑选项(-e) crontab

[offsite]:$ crontab -e

crontab 默认编辑器默认编辑器使用 shell 环境变量 VISUAL 或 EDITOR 来指定下面键入两个条目保存并关闭该文件


清单 12. 离线服务器上 crontab 条目
34 3 * * * /home/backups/remote_db_backup.sh 34 20 * * * /home/backups/remote_db_backup.sh






    个 crontab 行包括两个主要部分即时间调度部分及其后接命令部分时间调度被划分为字段用于介绍说明命令应该在何时执行:


清单 13. Crontab 格式
+---- minute | +----- hour | | +------ day of the month | | | +------ month | | | | +---- day of the week | | | | | +-- command to execute | | | | | | 34 3 * * * /home/backups/remote_db_backup.sh







="atitle">检验您备份

    应该对备份进行例行检查以保证备份过程工作正常自动备份过程能够去除不必要枯燥工作但是不应因此而变得懒惰如果数据值得备份那么它也值得您时常进行抽样检查

    考虑添加 cron 作业来提醒自己每月至少检查次备份此外每隔段时间修改次安全密钥也是个好主意也可以调度个 cron 作业来提醒自己及时更改安全密钥
="atitle">

="atitle">额外安全措施

    为了加强安全可以考虑在所有机器上安装和配置入侵检测系统(IDS)例如 Snort当入侵正在发生或者最近曾发生过IDS 将会通知用户使用 IDS还能够添加其他级别安全性例如对备份进行数字签名和加密

    流行开源工具(比如 GNU Privacy Guard (GnuPG)、OpenSSL 和 ncrypt)都支持通过 shell 脚本保护归档文件但是本文不建议在没有 IDS 提供额外防护级别情况下这样做(有关 Snort 更多信息请参阅 参考资料)

="atitle">结束语

    本文展示了如何在远程服务器上执行脚本以及如何进行安全和自动化文件传输我希望您能由此得到灵感而开始考虑保护您自己重要数据并使用 OpenSSH 和 Snort 等开放源代码工具来构建新解决方案

Tags:  linux运行脚本 linuxshell脚本 linux启动脚本 linux脚本

延伸阅读

最新评论

发表评论