我的意图:
查找过去2天内修改过的文件。
获取每个文件的最后500行(因为应用程序日志文件很大)。
然后我使用Python Fabric将这些文件从远程计算机下载到我的本地计算机。
能够使用find /opt/tomcat/logs -mtime -2 -exec sudo tail -500 '{}' \;
能够做2和3使用:
'sudo tail -500 ' + filename + ' | sudo tee ' + logfilename + '_tail'
如何在1个命令中完成1,2和3?
我在1命令中需要它,因为我使用Python sshcon.exec_command()在远程计算机上执行此操作。
答案 0 :(得分:0)
编写shell脚本以实现所需的最终结果。
然后使用子进程模块运行它。
确保在subprocess.call()
import subprocess
subprocess.call("sshpass -p pass ssh -o StrictHostKeyChecking=no \
user@remote_server_ip 'bash -s' < your_script.sh ",shell=True)
假设你有一个脚本test_script.sh,你想在三台服务器上运行它(1.2.3.4,1.2.3.5,1.2.3.6)。现在的方法应该是:
import subprocess
servers = [1.2.3.4, 1.2.3.5, 1.2.3.6]
for server in servers:
subprocess.call("sshpass -p password ssh -o StrictHostKeyChecking=no \
username@{0} 'bash -s' < test_script.sh ".format(server),shell=True)
如果安装了sshpass
,这将足以实现您的目标。