Tập lệnh python để sao chép tệp từ máy chủ này sang máy chủ khác
Trong bài viết trước của tôi, tôi đã chia sẻ các bước để mã hóa tệp bằng khóa gpg trong Linux. Bây giờ trong bài viết này, tôi sẽ chia sẻ các lệnh và công cụ khác nhau mà bạn có thể sử dụng để sao chép tệp một cách an toàn từ máy chủ này sang máy chủ khác trong Linux. Ngoài ra còn có các cách khác để truyền tệp mà tôi không thể trình bày ở đây, chẳng hạn như bạn cũng có thể sử dụng HTTPS để tải lên và tải xuống tệp Show
Tôi có thể viết một bài viết khác với danh sách chi tiết các bước sử dụng HTTPS và cuộn tròn để tải lên và tải xuống tệp an toàn. Nếu bạn muốn sao chép tệp giữa Windows và Linux thì bạn luôn có thể sử dụng Samba nhưng vì ở đây chúng tôi đang nhắm mục tiêu chuyển tệp giữa hai máy Linux, tôi sẽ không chia sẻ bất kỳ bước nào liên quan đến cấu hình Samba Một số bài viết khác về chủ đề liên quan bạn có thể quan tâm
CŨNG ĐỌC. Hệ thống con Windows dành cho Linux (WSL2) trên Windows 10 (Từng bước) Sử dụng SFTP để sao chép tệp từ máy chủ này sang máy chủ khácTrong điện toán, Giao thức truyền tệp SSH (cũng là Giao thức truyền tệp an toàn hoặc SFTP) là một giao thức mạng cung cấp quyền truy cập tệp, truyền tệp và quản lý tệp trên bất kỳ luồng dữ liệu đáng tin cậy nào SFTP rất dễ làm việc với. Bạn nhập sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 4 cùng với tên của hệ thống từ xa trên dòng lệnh. Bạn được nhắc về tài khoản sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 5; Bạn cũng có thể tự động hóa quá trình truyền tệp bằng SFTP trong tập lệnh shell hoặc bạn cũng có thể sử dụng một lệnh SFTP lót để thực hiện truyền tệp thay vì các phiên tương tác [deepak@Ban17-inst01-a ~]$ sftp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] Password: Khi bạn cung cấp mật khẩu của người dùng sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 6 trên nút đích, bạn sẽ nhận được trình bao sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 4sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file Tiếp theo để sao chép tệp từ máy chủ sang máy khách (i. e. tải tệp từ máy chủ lên máy khách) sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 8' trên máy chủ lưu trữ của mình với tên 'sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 9' mà tôi muốn sao chép vào thư mục làm việc hiện tại của máy kháchQuảng cáo sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 Để sao chép một thư mục và tất cả nội dung của nó, hãy sử dụng (-r). Ở đây /home/deepak/mydir có sẵn trên máy chủ của tôi mà tôi đang sao chép vào nút máy khách được kết nối trong thư mục làm việc hiện tại sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ Vậy là file đã upload thành công. Bạn có thể xác minh tương tự sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 0Tiếp theo, sao chép tệp từ nút máy khách sang máy chủ lưu trữ của bạn. Tôi có một tệp 'test_file' trên nút máy khách của mình trong '/home/deepak/test_file' sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 1Xác thực tương tự trên máy chủ lưu trữ của bạn sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 2Bạn có thể nhận được nhiều tùy chọn được hỗ trợ hơn từ trang hướng dẫn của sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 4
CŨNG ĐỌC. Cách thiết lập Android Pentesting Lab [Miễn phí 100%] Sử dụng RSYNC để sao chép tệp từ máy chủ này sang máy chủ khácrsync là một tiện ích mà bạn có thể sử dụng để sao chép tệp từ máy chủ này sang máy chủ khác một cách rất dễ dàng và có nhiều tùy chọn có sẵn để cho phép bạn chỉ định rất cụ thể về cách bạn muốn truyền dữ liệu. Một khía cạnh khác làm cho rsync trở nên linh hoạt là có nhiều cách bạn có thể thao tác với thư mục nguồn và đích. Tuy nhiên, bạn thậm chí không phải sử dụng mạng; Sao chép một tệp trong cùng một máy chủ từ vị trí này sang vị trí khác sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 4Ở đây chúng tôi đang sử dụng sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 1 để sao chép đệ quy, bạn cũng có thể sử dụng (sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 2) i. e. đối với kho lưu trữ giữ lại càng nhiều siêu dữ liệu càng tốt (trong hầu hết các trường hợp, nó sẽ biến mọi thứ thành một bản sao chính xác)Quảng cáo LƯU Ý. sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 3 chạy, nó sẽ sao chép những gì khác với lần chạy trước. Các tệp từ bản sao lưu đầu tiên của chúng tôi đã có ở đó nhưng quyền không đúng. Khi chúng tôi chạy lệnh thứ hai, sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 3 chỉ cần sao chép những gì khác biệt, vì vậy nó đã áp dụng đúng quyền cho các tệp. Nếu bất kỳ tệp mới nào được thêm vào thư mục nguồn kể từ lần cuối chúng tôi chạy lệnh, thì các tệp mới hoặc tệp cập nhật cũng sẽ được sao chép. Để sao chép tập tin giữa hai máy chủ sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 9
CŨNG ĐỌC. Tùy chọn gắn kết NFS. Tùy chọn xuất NFS. Hướng dẫn cho người mới bắt đầu Sử dụng SCP để sao chép tệp từ máy chủ này sang máy chủ khácMột thay thế hữu ích cho rsync là tiện ích Sao chép an toàn (SCP) để sao chép tệp từ máy chủ này sang máy chủ khác, đi kèm với OpenSSH. Nó cho phép bạn nhanh chóng sao chép các tệp từ nút này sang nút khác. Nếu mục tiêu của bạn là gửi một tệp hoặc một số lượng nhỏ tệp đến một máy khác, thì SCP là một công cụ tuyệt vời mà bạn có thể sử dụng để hoàn thành công việc. Để sử dụng SCP, chúng tôi sẽ sử dụng lệnh scp. Vì rất có thể bạn đã cài đặt OpenSSH, nên bạn đã có sẵn lệnh scp Sử dụng SCP về bản chất rất giống với rsync. Lệnh yêu cầu nguồn, đích và tên tệp. Để chuyển một tệp từ máy cục bộ của bạn sang máy khác, lệnh kết quả sẽ giống như sau [deepak@Ban17-inst01-a ~]$ sftp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] Password:0 Nếu bạn không chỉ định thư mục đích trong khi thực hiện scp, thì thư mục chính của người dùng đích sẽ được sử dụng là đích sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file0 LƯU Ý QUAN TRỌNG. Với các ví dụ về sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 5 trước đây của chúng tôi, chúng tôi chỉ sao chép một tệp duy nhất. Nếu chúng tôi muốn chuyển hoặc tải xuống toàn bộ thư mục và nội dung của nó, chúng tôi sẽ cần sử dụng tùy chọn -r, cho phép chúng tôi thực hiện sao chép đệ quysftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file1
CŨNG ĐỌC. Các công cụ quét lỗ hổng Kali khác nhau [Đã giải thích] Sử dụng NFS để chia sẻ tệp từ máy chủ này sang máy chủ khácHệ thống tệp mạng (NFS) là một phương pháp tuyệt vời để chia sẻ tệp giữa các máy chủ Linux hoặc UNIX. Tôi đã viết một bài viết khác với các bước chi tiết để thiết lập NFSv4 và NFSv3 với các ví dụ trong RHEL/CentOS 7 và 8 Linux Quảng cáo Trên nút RHEL của tôi, tôi đã cài đặt sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 6 và bây giờ sẽ thiết lập các bản xuất của tôi. Để thiết lập NFS, trước tiên hãy tạo một số thư mục mà chúng tôi sẽ chia sẻ với những người dùng khác. Mỗi cổ phần trong NFS được gọi là một sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 7sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file2
LƯU Ý. Tiếp theo khởi động lại dịch vụ sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 03 của bạn trên máy chủsftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file3 Để kiểm tra danh sách cổ phiếu đang xuất sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file4 Bây giờ hãy thử gắn thư mục sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 8 từ phía máy kháchsftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file5 Vậy là chúng ta mount thư mục thành công, Tiếp theo xác thực nội dung sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file6 Chúng tôi có thể xác thực tương tự trên nút máy khách của mình bằng lệnh bên dưới sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file7 LƯU Ý. sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 05. Vì vậy, nếu bạn gặp phải bất kỳ sự cố nào, hãy kiểm tra quy tắc sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 06 và sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 05 của bạn và thêm quy tắc iptables để cho phép kết nối ssh. Sau khi gắn thành công phần chia sẻ trên nút máy khách, bạn có thể sao chép tệp cục bộ vào nút của mình sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file8
CŨNG ĐỌC. Cách tắt SELinux (có và không khởi động lại) Sử dụng SSHFS để sao chép tệp từ máy chủ này sang máy chủ khácSSH Filesystem (SSHFS) là một giải pháp chia sẻ tệp tương tự như NFS và Samba. NFS và Samba là những giải pháp tuyệt vời để chỉ định chia sẻ tệp nhưng những công nghệ này có thể phức tạp hơn mức cần thiết nếu bạn muốn thiết lập một dịch vụ chia sẻ tệp tạm thời để sử dụng trong một khoảng thời gian cụ thể. SSHFS cho phép bạn gắn một thư mục từ xa trên máy cục bộ của mình và xử lý nó giống như bất kỳ thư mục nào khác. Thư mục SSHFS được gắn kết sẽ có sẵn cho vòng đời của kết nối SSH và có thể được sử dụng để sao chép tệp từ máy chủ này sang máy chủ khác
Hạn chế của việc sử dụng SSHFS
SSHFS là một phần của kho lưu trữ EPEL mà bạn có thể cài đặt bằng yum sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file9 Để SSHFS hoạt động, chúng tôi sẽ cần một thư mục trên cả máy Linux cục bộ của bạn cũng như máy chủ Linux từ xa. SSHFS có thể gắn bất kỳ thư mục nào từ máy chủ từ xa nơi bạn có quyền truy cập SSH Quảng cáo Ở đây tôi đang gắn sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/ 8 từ sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 09 trên sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 10sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 0Bây giờ hãy xác thực nội dung của sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 11 và đảm bảo đường dẫn được gắn đúng cáchsftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 1Bây giờ bạn có thể sao chép cục bộ các tệp từ sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 11 sang bất kỳ thư mục nào khácsftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 2Khi quá trình sao chép của bạn hoàn tất, hãy ngắt kết nối thư mục tương ứng theo cách thủ công. Có hai cách để làm như vậy. Đầu tiên, chúng ta có thể sử dụng lệnh sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 13 thay cho lệnh sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 14 (giống như chúng ta thường làm)sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00 3
CŨNG ĐỌC. Các công cụ quét lỗ hổng Kali khác nhau [Đã giải thích] Bạn cũng có thể sử dụng HTTPS để chia sẻ tệp, mặc dù nó sẽ giống như tải lên và tải xuống tệp qua GET và PUT bằng cách sử dụng lệnh curl
Cuối cùng, tôi hy vọng các lệnh từ bài viết này để sao chép tệp từ máy chủ này sang máy chủ khác trong Linux hoặc Unix là hữu ích. Vì vậy, hãy cho tôi biết đề xuất và phản hồi của bạn bằng cách sử dụng phần bình luận Làm cách nào để sao chép tệp từ thư mục này sang thư mục khác bằng Python?Phương thức copy2() trong Python được sử dụng để sao chép nội dung của tệp nguồn sang tệp hoặc thư mục đích . Phương pháp này giống hệt với Shutil. copy() cũng bảo toàn siêu dữ liệu của tệp.
Làm cách nào để sao chép nhiều tệp từ thư mục này sang thư mục khác trong Python?Bạn có thể sao chép nội dung của thư mục này sang thư mục khác bằng cách sử dụng shutil. sao chép(), đóng cửa. copy2() và tắt máy. copytree() các phương thức của mô-đun này. |