0

我有一个要从 php 运行的命令

$shell = 'mysqldump -uuser -ppass --where="id>' . $larger .' and id<' . $smaller .'" view allasins | gzip -c | sshpass -p "pass2" ssh user2@host.com  \'cat>/home/user/domain.com/file.sql.gz\'';
$shell = escapeshellarg($shell); //this is not working, escapeshellcmd($shell) also not working
shell_exec($shell);

那么,有人知道这些代码有什么问题吗?没有错误消息,它根本不起作用。

非常感谢。

4

1 回答 1

1

尝试使用

escapeshellcmd所以 :

$Command = escapeshellarg($shell);

用途为

escapeshellarg()

是转义单个字符串,以使其在您的示例中起作用:

$shell = 'mysqldump -uuser -ppass --where="id>' . escapeshellarg($larger) .' and id<' . escapeshellarg($smaller) .'" view allasins | gzip -c | sshpass -p "pass2" ssh user2@host.com  \'cat>/home/user/domain.com/file.sql.gz\'';
于 2013-09-05T14:59:43.550 回答