sqlplus -s u@t/t << EOF
drop table connection_backup;
CREATE TABLE connection_backup AS (SELECT * FROM connection);
drop table htbill_backup;
CREATE TABLE htbill_backup AS (SELECT * FROM htbill);
EXIT
EOF
Crontab -e File
*/1 * * * * sh ~/sql.sh | write $LOGNAME
由于第一行中的eof停止了crontab并且没有执行进一步的shell脚本
答案 0 :(得分:1)
<强> 1。让你的shebang正确
使用以下命令查找您喜欢的shell的位置:
whereis bash
或
whereis sh
然后,在sql.sh
脚本顶部插入一个新行
#!<FULL PATH TO SHELL>
以上的一个例子是:
#!/bin/bash
<强> 2。让你的PATH正确
使用
查找系统上安装sqlplus
的位置
whereis sqlplus
在脚本中添加新的第二行
export PATH=${PATH}:<SQLPLUS DIRECTORY ONLY>
一个例子是
export PATH=${PATH}:/usr/local/bin # Note the word `sqlplus` is omitted - we only specify the directory where it lives
第3。使您的脚本可执行
使用
使sql.sh
脚本可执行
chmod +x sql.sh
<强> 4。在cron之外测试你的脚本
使用
测试您的脚本./sql.sh
并确保在继续之前有效。
<强> 5。通过cron
获取正确的脚本路径使用
查找您的登录目录cd
pwd
更改您的crontab脚本,使其显示:
*/1 * * * * <LOGIN DIRECTORY>/sql.sh