我在脚本中使用的一些示例脚本

我在脚本中使用的一些示例脚本

您好,自动化执行一些任务,将用户从本地更改为 sudo su root 并连接到 ftp 服务器,将 .gz 文件从 ftp 获取到本地计算机,gunzip 该文件并恢复到 PostgreSQL BD,但我无法更改用户

我在脚本中使用的一些示例脚本

1.spawn sudo -s <

期望“用户名密码:”

发送——“生产123\r”

期望 eof

错误:-

-bash: ./dbbackup.sh: /usr/bin: 错误的解释器: 权限被拒绝

  1. sudo -kSs << EOF

产量123

我是谁

echo“以纯文本编码的密码不是一个好主意”

EOF

错误:它也没有切换用户

3.sudo -s <

期望“用户名密码:”

发送——“生产123\r”

期望 eof

错误

[生产@nsuat crons]$ ./dbbackup.sh ./dbbackup.sh:第 1 行:EOF:没有这样的文件或目录 ./dbbackup.sh:第 3 行:期望:找不到命令 ./dbbackup.sh:第 5 行: 发送: 未找到命令 ./dbbackup.sh: 第 7 行: 期望: 未找到命令 [生产@nsuat crons]$

答案1

问题有点难以理解。但是,如果可以的话,我可以提供另一种方法。创建运行备份的特定用户,并为其授予无密码 sudo 权限。现在设置 cron 作业(或您使用的其他东西)以该用户身份运行,并让备份脚本在需要时提升 (sudo) 其权限。

或者,根据 Postgres 的设置方式,您可以让 postgres 用户作为运行恢复的用户。

答案2

尝试这个;这个对我有用:

echo "[Password]" | su [UserName] -c [Command/Script to be executed]

相关内容