我有一个命令,我想从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);
那么,有谁知道这些代码有什么问题?没有错误消息,它根本不起作用。
非常感谢。
答案 0 :(得分: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\'';