自动化SQL脚本

时间:2016-10-21 13:48:34

标签: sql shell unix vertica

我是编程世界的新手。我有一个需要自动化的SQL脚本。所需的自动化如下:

1)脚本应该每个星期天运行

2)自动将结果转储到DUMP_YYYYMMDDHH24MISS.txt

3)结果集是tar gziped

4)使用提供的用户名和密码上传到SFTP URL。

我正在使用: UNIX, Vertica DB

大师们可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这实际上是4个问题,应该这样问。以现在的格式回答:

1)自动安排任务 - Crontab

在终端中,输入crontab -e

如果你想在每个星期日凌晨1点想要一些东西,请添加以下一行:

0 1 * * * 0 /path/to/script/script.sh

这将在每个星期天执行脚本。

2)设置命令的输出

我只熟悉oracle。格式可能类似。为了获得您想要的文件名,您可以使用日期函数,如下所示。 (这就是我用Oracle做的方式):

d=$(date +%Y%M%D%H%M)
var=$(sqlplus -s / as blahblahblah
select * from stuff;
exit
EOF
)

file_name=DUMP_${d}MISS.txt
echo "${var}" >> ${file_name}

请注意,您的日期命令可能有所不同,如果您在日期上执行手册页,它会告诉您需要哪些参数来格式化日期。

3)去掉输出

tar -xvf ${file_name}

4)通过SFTP发送 您必须对sftp进行身份验证,这超出了任何人无需更多详细信息即可回答的范围。一旦您将机器设置为进行身份验证,您将执行以下操作:

sftp username@server<<EOF
put ${file_name}
EOF