写一个 shell 脚本,将 192.168.*,128 服务器的 scott 用户的数据库导出(exp)为.dmp 文件,并将文件拷贝到备份服务器进行备份(scp),备份服务器用户为 back,地址为: 192.168.*.129备份目录为/home/back/bak 要求: dmp 文件的名字中要包含当前日期和时间另需设置定时任务,在每年 2-7 月份的每个星期六晚 8 点和晚 11 点执行备份任务
时间: 2024-03-03 16:47:18 浏览: 70
shell 脚本对数据库定时备份
好的,这是一个比较复杂的问题,需要细心处理。首先,我们需要编写一个 shell 脚本,根据要求进行数据库导出和文件备份。以下是一个可能的实现:
```bash
#!/bin/bash
# 获取当前日期和时间
now=$(date +"%Y%m%d_%H%M%S")
# 导出数据库
exp scott/tiger@192.168.*.128 file=scott_${now}.dmp
# 备份文件到备份服务器
scp scott_${now}.dmp back@192.168.*.129:/home/back/bak
# 删除本地文件
rm scott_${now}.dmp
```
上述脚本假设已经配置好了数据库连接,并且在本机安装了 `scp` 命令。其中,导出的文件名中包含了当前日期和时间,以避免重名问题。备份服务器的地址和用户名都已经在脚本中指定。最后,删除本地文件以节省空间。
接下来,我们需要设置定时任务。在 Linux 中,可以使用 `crontab` 命令来管理定时任务。具体实现如下:
```
# 每年 2-7 月份的每个星期六晚 8 点和晚 11 点执行备份任务
0 20,23 * 2-7 6 /path/to/backup.sh
```
上述命令将在每年的 2-7 月份的每个星期六的晚上 8 点和晚上 11 点,执行 `/path/to/backup.sh` 脚本。注意,这里使用了 24 小时制,且月份和星期都使用了数字表示。
希望这个回答能够帮到你!
阅读全文