在shell 中如何可以并行化处理任务?
下面举例说明
cat hosts.txt | xargs -P 10 -I {} ssh {} "your_command_to_process_nginx_logs"
这里的-P 10
表示同时运行10个并行任务。-I {}
是一个替换字符串,用于在ssh
命令中插入主机名。your_command_to_process_nginx_logs
是你想要在远程服务器上执行的具体命令,例如:
sudo cat /var/log/nginx/access.log | grep 'some_pattern' > processed_log.txt
将上述命令替换到your_command_to_process_nginx_logs
的位置。
请注意,这种方法要求你已经在本地机器和远程服务器之间设置了SSH免密码登录,否则每次执行命令时都会要求输入密码。