从以 root 身份运行的 shell 脚本中以 oracle 用户身份运行 oracle 脚本

发布于 2024-12-22 00:49:11 字数 418 浏览 1 评论 0原文

我有一个以 root 身份运行的 shell 脚本。我希望脚本切换到 oracle 用户,运行 sqlplus 并运行一些 .sql 文件。 我正在尝试遵循:

su - oracle << -EOF1  2>&1
        sqlplus $user/$password << -EOF2
                @oracle.sql;
                @quartz.sql;
        EOF2
EOF1

首先我得到 stty: standard input: In合适的 ioctl for device 这是什么意思?

其次,有人可以向我解释在这种情况下重定向(应该)如何工作吗?

谢谢

I have a shell script that runs as root. I want the script to switch to oracle user, run sqlplus and run some .sql files.
I am trying to followung :

su - oracle << -EOF1  2>&1
        sqlplus $user/$password << -EOF2
                @oracle.sql;
                @quartz.sql;
        EOF2
EOF1

first of all i get stty: standard input: Inappropriate ioctl for device what does it mean ?

second, can someone explain to me how the redirect (should) work in this case ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹿港小镇 2024-12-29 00:49:11

使用:

if [ "$(id -un)" -eq "root" ]; then
    exec su - oracle -c $0
fi

sqlplus <<EOF
blablabla
EOF

如果您的脚本可能需要参数,则解决方案将会有所不同。

它检查当前运行的用户是否是root。如果是这样,它会以用户 oracle 身份重新执行脚本 ($0)。

但是顺便说一句,为什么脚本首先要以 root 身份运行?

Use:

if [ "$(id -un)" -eq "root" ]; then
    exec su - oracle -c $0
fi

sqlplus <<EOF
blablabla
EOF

If your script potentially takes arguments, the solution will differ.

What this does it checking whether the user running is currently root. If so, it re-executes the script ($0) as user oracle instead.

But BTW, why does the script run as root in the first place?

未蓝澄海的烟 2024-12-29 00:49:11

su - oracle -c "echo '从对偶中选择 1;
从对偶中选择 2;'| sqlpus / as sysdba "

如果包含 ' 使用以下内容
su - oracle -c "echo \"从对偶中选择 1;
选择 2 from Dual;\" | sqlpus / as sysdba "

su - oracle -c " echo 'select 1 from dual;
select 2 from dual;'| sqlpus / as sysdba "

if contain ' using following
su - oracle -c " echo \"select 1 from dual;
select 2 from dual;\" | sqlpus / as sysdba "

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文