Tôi muốn biết một cách dễ dàng để sử dụng scp để sao chép các tệp và thư mục có mặt trong các đường dẫn khác nhau trên hệ thống tệp của tôi. Máy chủ đích ssh yêu cầu mật khẩu và tôi không thể đặt mật khẩu này vào các tệp cấu hình. Tôi biết rằng scp không có một tham số mật khẩu mà tôi có thể cung cấp từ một kịch bản, vì vậy bây giờ tôi phải sao chép từng tập tin hoặc thư mục từng người một, viết mật khẩu của tôi mỗi lần.Cách thông minh để sao chép nhiều tệp từ các đường dẫn khác nhau usp scp
Trả lời
Nếu bạn có thể biểu thị tất cả tên của các tệp mà bạn muốn sao chép từ hệ thống từ xa bằng một mẫu toàn cục, thì bạn có thể thực hiện điều này trong một lệnh scp
. Việc sử dụng này sẽ chỉ hỗ trợ một thư mục đích duy nhất trên hệ thống cục bộ cho tất cả các tệp. Ví dụ:
scp 'RemoteHost:/tmp/[abc]*/*.tar.gz' .
bản sao tất cả các tập tin từ các hệ thống từ xa mà là những cái tên (something).tar.gz
và được nằm trong thư mục con của /tmp
có tên bắt đầu với a
, b
, hoặc c
. Các dấu ngoặc kép duy nhất là để bảo vệ các mô hình glob từ được giải thích từ vỏ trên hệ thống địa phương.
Nếu bạn không thể diễn tả tất cả các tệp bạn muốn sao chép dưới dạng một mẫu toàn cục và bạn vẫn muốn sao chép bằng một lệnh duy nhất (và một kết nối SSH chỉ yêu cầu mật khẩu của bạn một lần) có thể một trong hai:
- Sử dụng một lệnh khác so với
scp
, nhưsftp
hoặcrsync
, hoặc - mở một kết nối tổng thể SSH vào máy chủ từ xa và chạy một số lệnh scp làm nô lệ của tổng thể đó. Các nô lệ sẽ piggyback trên kết nối chủ mà vẫn mở trong suốt và sẽ không yêu cầu bạn cho một mật khẩu. Đọc trên các kết nối phụ & nô lệ trong manpage ssh.
tạo cặp khóa, sao chép khóa công khai sang phía máy chủ.
ssh-keygen -t rsa
Gắn nội dung bên trong tệp ~/.ssh/identity.pub vào tệp ~/.ssh/authorized_keys2 của người dùng phía máy chủ. Bạn không cần nhập mật khẩu nữa.
Tuy nhiên, hãy cẩn thận! bất kỳ ai có thể truy cập "tài khoản cục bộ" của bạn cũng có thể "ssh" vào máy chủ mà không cần mật khẩu.
Oh , Tôi nghĩ rằng OP có một số lý do cho việc không thể sử dụng các khóa SSH. Tôi hiểu sai. Dường như không có bất kỳ yêu cầu nào như vậy. Chìa khóa, như bạn đề nghị, những gì tôi thường sử dụng! – Celada
Tôi biết phương pháp này, nhưng tôi không muốn đặt tay lên các thư mục phổ biến như .ssh. –
ngoài các glob đã đề cập:
bạn có thể sử dụng {,}
để xác định các đường thay thế/pathparts trong một tuyên bố đơn
ví dụ: scp [email protected]:/{PATH1,PATH2} DESTINATION
Lưu ý rằng bạn phải báo giá hoặc thoát khỏi niềng răng để vỏ không mở rộng chúng nếu bạn muốn tránh nhập mật khẩu hai lần. ví dụ. 'scp 'user @ host: {PATH1, PATH2}' DESTINATION' – yonran
Còn con đường đích thì sao? Có cách nào để có một cái gì đó giống như người dùng 'scp '@ host: {PATH1, PATH2}' DIRECTORY/{FILE1, FILE2}'? – Ant
Ngoài ra, nếu bạn không thể sử dụng xác thực khóa công khai , bạn có thể thêm cấu hình sau vào SSH (hoặc là ~/.ssh/config
hoặc làm đối số dòng lệnh thích hợp):
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 2m
Với cấu hình này, kết nối SSH sẽ được mở trong 2 phút, do đó bạn chỉ cần nhập mật khẩu lần đầu tiên.
This post có thêm chi tiết về tính năng này.
- 1. Cách sao chép tệp sang đường dẫn khác?
- 2. scp hoặc sftp sao chép nhiều tệp bằng một lệnh duy nhất
- 3. sao chép nhiều tệp trong python
- 4. Sao chép tệp đường dẫn bằng plugin NERDtree Vim
- 5. Chia sẻ dự án PyCharm trên nhiều hệ điều hành (đường dẫn thông dịch khác nhau)
- 6. Sao chép tên đường dẫn/tệp trong Eclipse vào clipboard
- 7. Có cách nào thông minh để đưa ra các thông điệp ưu tiên khác nhau không?
- 8. Làm cách nào để sao chép nhiều tệp từ một thư mục khác bằng cp?
- 9. Sao chép từ tệp xml này sang tệp khác - powershell
- 10. PHP Exec SCP không sao chép tệp vào máy chủ từ xa
- 11. Làm cách nào để sử dụng scp để sao chép tệp từ máy chủ sang phía máy khách?
- 12. Trong FTP, làm cách nào để sao chép tệp từ xa sang các thư mục khác
- 13. Cách cắt nhiều cột từ nhiều tệp và in đầu ra thành các tệp khác nhau
- 14. Sử dụng scp để sao chép tệp sang cá thể Amazon EC2?
- 15. Nhiều tệp Log4j.properties trong đường dẫn lớp
- 16. Thuộc tính SVN Mergeinfo trên đường dẫn khác với gốc sao chép làm việc
- 17. Cách sử dụng robocopy để sao chép các thư mục trên các miền khác nhau
- 18. Vận tốc, các đường dẫn mẫu khác nhau
- 19. Cách lấy đường dẫn tệp từ URI?
- 20. Cách thông thường để sao chép tệp trong Gradle - sử dụng Sao chép tác vụ hoặc phương pháp sao chép?
- 21. Lệnh Linux để sao chép một tệp vào nhiều tệp
- 22. Làm thế nào để lọc tệp khi sử dụng scp để sao chép thư mục đệ quy?
- 23. Có cách nào để sao chép sơ đồ vào các dự án khác nhau không?
- 24. Sao chép mọi tệp của toàn bộ cấu trúc thư mục vào đường dẫn cơ sở của một đường dẫn khác của
- 25. Làm cách nào để sao chép tệp từ Tài nguyên?
- 26. Làm cách nào để thiết lập đường dẫn xây dựng Eclipse và đường dẫn lớp từ tệp xây dựng Ant?
- 27. Cách sao chép tệp .xib?
- 28. Các cách tiếp cận khác nhau để sao chép phiên Java EE là gì?
- 29. Làm cách nào để sao chép tệp từ máy chủ này sang máy chủ khác?
- 30. Cách trích xuất tên tệp từ tên đường dẫn tệp?
Có thể trùng lặp [scp hoặc sftp copy nhiều tệp với một lệnh] (http://stackoverflow.com/questions/16886179/scp-or-sftp-copy-multiple-files-with-single-command) – tripleee