mysql - 抓取 bash 变量输入数据到 MySQL

标签 mysql bash variables

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

通过将流程分解成多个部分进行故障排除,我能够从以下代码片段开始,它本身可以工作,但它不是整个程序包,也远未使用变量:

#!/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 数据库中。到目前为止,故障排除非常顺利。所以我的最终目标是将上面的东西与下面的代码片段结合起来,但不是发送电子邮件,我需要脚本来完成上面脚本所做的事情,即获取环境变量并将数据输入 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 

最佳答案

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

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

关于mysql - 抓取 bash 变量输入数据到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669631/

相关文章:

php - 将两个 $_GET 值与数据库中的行进行比较

javascript - 我如何从 PHP fetch assoc 获取结果

使用 BCrypt 加密 MYSQL 密码

bash - 反转 gcc 输出的顺序

Bash basename 只返回文件夹列表中的姓氏

c++ - 从 .dat 文件读取参数到 C++?

bash - 变量引用是否应该在算术 for 循环(算术上下文)中以 $ 为前缀?

mysql - 如何在 MySQL 中做一个 foreach 等效项?

mysql - Oracle MySQL : Cannot add foreign key constraint

python - 如何使 '?' 等于一个数字,所以当我浏览列表时。它将把它算作零。 (Python)