用php执行shell,用来备份和恢复mysql
首先,你要确保你有足够的权限去执行shell文件。
1.执行命令
visudo
把
Defaults requiretty
这一行注释掉,因为默认的情况下,执行sudo需要一个终端,这里注释掉就可以了
2.设置apache、nginx的启动用户的sudo权限
格式:
name ALL=(特定用户) NOPASSWD:需要sudo权限去执行的程序、脚本
先查找nginx的用户
ps -ef | grep nginx
www 4243 4240 0 10:20 ? 00:00:00 nginx
好,在/etc/sudoers中(也就是执行visudo)
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=(root) NOPASSWD:/xxxx/mysqlbaktemp.sh,/xxxx/mysqlimport.sh #每个脚本逗号隔开
这样,wwww这个用户以root权限,不需要密码去运行/xxxx/mysqlbaktemp.sh和/xxxx/mysqlimport.sh两个脚本.
<?php
system(“/usr/bin/sudo /xxxx/mysqlbaktemp.sh”,$code);
echo $code;
我想要田建明枪击视频