node.js 使用 sudo 执行多个命令
node.js execute multiple commands with sudo
在我的 node.js 脚本中,我需要使用 sudo 运行这两个命令:
execSync('sudo rsync -a ' + dir1 + " " + dir2);
execSync('sudo rm -Rf ' + dir1);
但这会导致它会要求输入两次 sudo 密码;
除此之外,如果我输入了错误的密码,脚本将继续运行而不会再次请求;
如何缓存密码以避免被提示输入两次,并等到提供正确的密码后再继续?
在 this piece of advice 之后,我还建议在同一个 sudo
命令下执行这两个命令。
execSync('sudo -- sh -c \'rsync -a ' + dir1 + ' ' + dir2 + ' && rm -Rf ' + dir1 + '\'');
检测是否发生错误可以从execSync 本身完成。好像是stderr
不为空的时候抛出异常。我会首先建议检查命令的退出代码,但该库似乎没有公开它。
在我的 node.js 脚本中,我需要使用 sudo 运行这两个命令:
execSync('sudo rsync -a ' + dir1 + " " + dir2);
execSync('sudo rm -Rf ' + dir1);
但这会导致它会要求输入两次 sudo 密码; 除此之外,如果我输入了错误的密码,脚本将继续运行而不会再次请求; 如何缓存密码以避免被提示输入两次,并等到提供正确的密码后再继续?
在 this piece of advice 之后,我还建议在同一个 sudo
命令下执行这两个命令。
execSync('sudo -- sh -c \'rsync -a ' + dir1 + ' ' + dir2 + ' && rm -Rf ' + dir1 + '\'');
检测是否发生错误可以从execSync 本身完成。好像是stderr
不为空的时候抛出异常。我会首先建议检查命令的退出代码,但该库似乎没有公开它。