【问题标题】:grab bash variables input data to MySQL抓取 bash 变量输入数据到 MySQL
【发布时间】:2015-02-24 12:05:26
【问题描述】:

所以我试图结合两个 bash 脚本的优点。我需要获取由成功的 PAM 会话创建的环境变量,并将它们传递到 MySQL 语句中。

通过将过程分解为多个部分以进行故障排除,我能够从以下 sn-p 代码开始,该代码本身可以工作,但它不是整个包,也远没有使用变量:

#!/bin/bash
mysql -h localhost -u user -ppassword << EOF 
insert into database.table (PAM_RHOST,PAM_SERVICE,PAM_TTY) values ('1','2','3');
EOF

好的,所以上面实际上将数据插入到 MySQL 数据库中。到目前为止,故障排除非常好。所以我的最终目标是把上面的东西和下面的 sn-p 结合起来,它可以工作,但是我需要脚本来完成上面脚本所做的事情,而不是发送电子邮件,即获取环境变量并将数据输入 MySQL。用于发送电子邮件的原始脚本是:

#!/bin/bash
adminEmail="someemail@someplace.com"
[ "$PAM_TYPE" == "open_session" ] || exit 0
{
echo "User: $PAM_USER"
echo "Remote Host: $PAM_RHOST"
echo "Service: $PAM_SERVICE"
echo "TTY: $PAM_TTY"
echo "Date: `date`"
echo "Server: `hostname -s`"
} | mail -s "`hostname -s` $PAM_SERVICE login: $PAM_USER" $adminEmail

所以我试图做的是将一些碎片粘在一起,但这是行不通的。我想出了以下内容并在这里需要帮助:

#!/bin/bash
[ "$PAM_TYPE" == "open_session" ] || exit 0
{
echo "User: $PAM_USER"
echo "Remote Host: $PAM_RHOST"
echo "Service: $PAM_SERVICE"
echo "TTY: $PAM_TTY"
echo "Date: `date`"
echo "Server: `hostname -s`"
} 
mysql -h localhost -u user -ppassword << EOF 
insert into database.table (PAM_USER,PAM_RHOST,PAM_SERVICE,PAM_TTY) values '$PAM_USER','$PAM_RHOST','$PAM_SERVICE,$PAM_TTY');
EOF 

【问题讨论】:

    标签: mysql bash variables


    【解决方案1】:

    您在 SQL 语句的 values 子句中有一些语法错误。

    values ('$PAM_USER','$PAM_RHOST','$PAM_SERVICE','$PAM_TTY');
           ^                                      ^ ^
    

    【讨论】:

      【解决方案2】:

      哎呀。你是对的。我已经修改了现在可以使用的脚本,并将其放在下面以供可能需要此类脚本的其他人使用。我现在唯一关心的是清理脚本,因为:1)脚本位于任何公开可用的目录之外,2)我担心有人可能会通过连接传递变量,所以我想知道清理或防止这种情况。那么,这就是有效的脚本:

      #!/bin/bash
      if [ "$PAM_TYPE" == "open_session" ]
      
      then 
      
      mysql -h localhost -u user -ppassword << EOF 
      insert into database.table (PAM_USER,PAM_RHOST,PAM_SERVICE,PAM_TTY,SERVER) values ('$PAM_USER','$PAM_RHOST','$PAM_SERVICE','$PAM_TTY',"`hostname -s`");
      EOF
      
      fi
      

      【讨论】:

        猜你喜欢
        • 2020-07-14
        • 1970-01-01
        • 1970-01-01
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        相关资源
        最近更新 更多