前言
由于应用安全配置,通常数据库没有开放外部端口的,此时,我们可以在linux服务器中运行shell脚本,执行相应的sql语句,将增量数据输出到指定文件,同时将文件上传到指定的ftp服务器或放到特定的文件夹,达到数据抓取的目的
一、mysql 命令行工具
通过 -e 参数 指定要执行的sql语句
mysql -u username -p -e "SELECT * FROM your_table WHERE your_condition" database_name > outputfile.sql
二、实际应用
1.编写shell脚本
#!/bin/bash
echo "begin"
# 获取当天日期
today=$(date +"%Y-%m-%d")
echo "$today"
# 获取前一天日期
yesterday=$(date -d "1 day ago" +%Y-%m-%d)
echo "$yesterday"
# 取当前时间作为文件前缀
filename=$(date +"%Y%m%d%H%M%S")
mysql -u username -p -e "SELECT * FROM your_table WHERE createtime>='$yesterday' and createtime<'$today' " database_name > "$filename"_table.sql
echo "end"
2.配置cronjob
使用crontab -e 设置运行时间,设置好之后,可以使用crontab -l查看
[root@server211 ~]# crontab -l
59 23 * * * ntpdate ntp.api.bz
00 02 * * * /root/your_shell.sh >> /root/db.log
总结
通过以上的配置,则可以定时生成增量数据,同时可以通过编写python脚本,将指定的文件上传到ftp,或者其他应用到指定路径下获取该增量数据。