所以我想结合两个bash脚本的好的部分。我需要获取由成功的PAM会话创建的环境变量,并将它们传递给MySQL语句。抢bash变量输入数据到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="[email protected]"
[ "$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