tập tin scp và xóa tập tin trên thư mục từ xa [đã đóng]


18

Tôi là một unoo noob, vì vậy hãy kiên nhẫn :-)

Tôi có một tập lệnh quét một loạt các tập tin đến một máy chủ khác.

Giả sử chúng là z1.foo, z2.foo, v.v. Điều tôi muốn làm là quét các tệp và xóa các tệp cũ hơn 5 ngày trong máy chủ đích.

Làm cách nào để xóa tệp an toàn khỏi đích?

Cảm ơn.


"ghi đè các tập tin tại đích"? Nếu bạn quét các tập tin đã tồn tại trên thư mục từ xa, chúng sẽ được ghi đè tự động
Aki

ý tưởng tốt của bạn, để xóa các tệp với một tập lệnh shell cục bộ. Có nghĩa là bạn đang SCPing các tập tin bất cứ khi nào bạn muốn. nhưng có tập lệnh shell chạy trên cơ sở hàng ngày để xóa các tệp trong một thư mục nhất định, nơi bạn giữ các tệp. Thông thường sẽ là một cái gì đó như:find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian

Câu trả lời:


21

Để xóa các tệp không tương tác:

ssh hostname "rm -f z100.foo z200.foo"

1
tên máy chủ là gì? phải servername@ipaddress:path/to/dir/không
HattrickNZ

1
tên máy chủ chỉ user:password@ipaddresshoặc user:password@dnsnamehoặc bạn có thể bỏ qua mật khẩu nếu không cần thiết. Tôi chỉ thử với root@somednsnamenó và nó hoạt động tốt. Phần path/to/dirtôi đặt trong lệnh rm, như một đường dẫn tuyệt đối, để đảm bảo nó chính xác.
AsoodAsItGets

6

Bạn có thể hoàn thành cả hai nhiệm vụ trong cùng một lệnh bằng cách sử dụng --deletecờ tới rsync.

> ls -1 localdir/
a.foo
b.foo

> ssh remote-host "ls -1 remotedir/"
c.foo

> rsync -a --delete localdir/ remote-host:remotedir/

> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo

Các --deletetùy chọn loại bỏ các file từ thư mục đích không tồn tại trên nguồn. Có một số lựa chọn về thời điểm các tệp bị xóa và cách xử lý các tệp bị loại trừ.

> man rysnc
...
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

Trang người đàn ông cũng chứa cảnh báo này:

Tùy chọn này có thể nguy hiểm nếu sử dụng không chính xác! Trước tiên, bạn nên chạy trước bằng cách sử dụng --dry-run option( -n) để xem những tệp nào sẽ bị xóa để đảm bảo các tệp quan trọng không được liệt kê.


2

Nếu bạn muốn đặt tên người dùng và số cổng, bạn có thể làm như sau:

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.