![많은 파일을 한 위치에 수집하는 가장 좋은 명령은 무엇입니까? [복사]](https://linux55.com/image/104630/%EB%A7%8E%EC%9D%80%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%95%9C%20%EC%9C%84%EC%B9%98%EC%97%90%20%EC%88%98%EC%A7%91%ED%95%98%EB%8A%94%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%9D%80%20%EB%AA%85%EB%A0%B9%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
하나로 병합해야 할 파일이 많습니다. 다른 서버에 있는 모든 호스트 파일을 한 위치에 수집하는 데 사용할 수 있는 명령이 있습니까?
답변1
ssh와 동일한 사용자가 있는 서버 목록이 있는 경우 다음과 같은 간단한 스크립트를 실행할 수 있습니다.
#!/bin/bash
for i in `more my_servers.txt`
do
scp $i:/etc/sudoers $i-sudoers
done
그러나 기본 권한은 /etc/sudoers
400이므로 루트만 읽을 수 있습니다.
다음으로 제가 제안하고 추천하는 것은 Ansible과 같은 도구입니다. SSH를 통해 실행되며 간단한 스크립트를 사용하여 원하는 모든 파일을 수집할 수 있습니다. 필요하다:
- 앤서블 설치
- 서버를 나열하는 매니페스트 파일 설정
- SSH 액세스 권한과 sudo 계정이 있어야 합니다(sudo 사용자에게는 400개의 권한이 있으므로).
fetch
그런 다음 다음과 같이 모듈 을 사용합니다 .
---
- hosts: all
remote_user: yoursshuser
tasks:
- name: fetch
fetch:
src: /etc/sudoers
dest: /tmp/{{ inventory_hostname }}-sudoers
become: yes
스크립트를 실행하는 데 사용됩니다 ansible-playbook playbook.yml -i yourinventoryfile
.
그게 다야.