Crontab Unix Shell脚本EOF

时间:2014-12-09 05:05:18

标签: shell unix crontab

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脚本

1 个答案:

答案 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