小编kut*_*iah的帖子

如何使用 PHP 页面中的 shell 脚本执行 MySQL 命令?

我想从 php 页面执行一个 shell 脚本,它将执行一个 MySQL 命令。

为此,我按照此处显示的方式进行操作:https : //stackoverflow.com/a/8055745/2117868

这是我的 sqlscript.sh

#!/bin/sh
sudo wget -t 50 -O /tmp/update.sql http://example.com/update.sql
if [ $? -eq 0 ]; then
    mysql -h "localhost" -u "root" "-pXXXXXXXX" "database-name" < "/tmp/update.sql"
    if [ $? -eq 0 ]; then
        sudo rm /tmp/update.sql
        echo "200"
    else
        echo "502"
    fi
else
    echo "404"
fi
Run Code Online (Sandbox Code Playgroud)

我的 php 页面是 runscript.php

<?php
    shell_exec("sudo /path/to/script/sqlscript.sh");
?>
Run Code Online (Sandbox Code Playgroud)

现在,当我sqlscript.sh服务器控制台php 页面 调用runscript.php它时,它可以正常工作200并按预期返回。

但是当我输入 MYSQL 用户和密码时 …

php mysql bash shell

5
推荐指数
1
解决办法
3570
查看次数

以没有 sudo 权限的非 root 用户身份连接时,使用 Ansible playbook 脚本更改 linux 密码

我正在尝试从 Ansible playbook更改非 root Linux 用户的密码。为此,我尝试按照此链接进行操作

按照说明,我可以通过在终端中输入以下代码成功更改非 root 用户的密码。

$ echo -e "your_current_pass\nlinuxpassword\nlinuxpassword" | passwd
Changing password for testuser.
(current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Run Code Online (Sandbox Code Playgroud)

之后,我尝试使用如下所示的 Ansible playbook 自动化代码,

---
- hosts: all
  gather_facts: no

  tasks:
    - name: "Check if user exists"
      register: user1_exists
      raw: getent passwd {{ ansible_user }}
      ignore_errors: true

    - name: "Change {{ ansible_user }} password"
      raw: echo -e "my_current_pass\nmy_new_pass\nmy_new_pass" | passwd
      when: user1_exists|success
Run Code Online (Sandbox Code Playgroud)

我在这里使用Ansible的原始模块 …

linux passwords bash passwd ansible

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×2

ansible ×1

linux ×1

mysql ×1

passwd ×1

passwords ×1

php ×1

shell ×1