স্ক্র্যাপ ফাইল এবং দূরবর্তী ডিরেক্টরিতে ফাইলগুলি মুছুন [বন্ধ]


18

আমি একটি ইউনিক নুব, তাই দয়া করে ধৈর্য ধরুন :-)

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা অন্য সার্ভারে গুচ্ছ ফাইলগুলি সরিয়ে দেয়।

ধরুন এগুলি z1.foo, z2.foo ইত্যাদি I আমি যা করতে চাই তা হল গন্তব্য সার্ভারে 5 দিনেরও পুরানো ফাইলগুলি স্ক্র্যাপ করা এবং মুছতে।

আমি কীভাবে নিরাপদে গন্তব্য থেকে ফাইলগুলি মুছব?

ধন্যবাদ।


"গন্তব্যস্থলে ফাইলগুলি ওভাররাইট করবেন"? আপনি যদি ইতিমধ্যে দূরবর্তী দীরের মধ্যে উপস্থিত ফাইলগুলি
আকি

এটির ভাল ধারণা, স্থানীয়ভাবে শেল স্ক্রিপ্টের সাহায্যে ফাইলগুলি মুছতে an তবে এমন একটি শেল স্ক্রিপ্ট রয়েছে যা একটি নির্দিষ্ট ফোল্ডারের নীচে ফাইলগুলি সরাতে প্রতিদিন ভিত্তিতে চালিত হয়, যেখানে আপনি ফাইলগুলি find /path/to/files* -mtime +5 -exec rm {} \;
mandমান্ড

উত্তর:


21

ইন্টারেক্টিভভাবে ফাইলগুলি অপসারণ করতে:

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

1
হোস্ট নাম কি? এটা servername@ipaddress:path/to/dir/কি?
হ্যাট্রিকএনজেড

1
হোস্টনামটি ঠিক হয় user:password@ipaddressবা user:password@dnsnameপ্রয়োজন না হলে পাসওয়ার্ডটি বাদ দিতে পারেন। আমি এটি দিয়ে চেষ্টা করেছি root@somednsnameএবং এটি ঠিক কাজ করে। path/to/dirঅংশ আমি rm কমান্ড রাখা, একটি সুনির্দিষ্ট পাথ হিসাবে, এটি সঠিক কিনা নিশ্চিত করতে।
AsGoodAsItGates

6

আপনি --deleteপতাকাটি ব্যবহার করে একই কমান্ডে দুটি কার্য সম্পাদন করতে পারেন 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

--deleteবিকল্প গন্তব্য যে ডিরেক্টরি উৎস উপর উপস্থিত না থাকার থেকে ফাইল সরিয়ে ফেলা হয়। ফাইলগুলি কখন মুছে ফেলা হয় এবং কীভাবে বাদ পড়ে যাওয়া ফাইলগুলি পরিচালনা করতে হয় সে সম্পর্কে কিছু পছন্দ রয়েছে।

> 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

ম্যান পেজেও এই সতর্কতা রয়েছে:

এই বিকল্পটি ভুলভাবে ব্যবহার করা বিপজ্জনক হতে পারে! গুরুত্বপূর্ণ ফাইলগুলি তালিকাভুক্ত নয় তা নিশ্চিত করার জন্য কোন ফাইলগুলি মুছে ফেলা হবে তা দেখতে --dry-run option( -n) ব্যবহার করে প্রথমে চালানো খুব ভাল ধারণা ।


2

আপনি যদি ব্যবহারকারী নাম এবং পোর্ট নম্বর সেট করতে চান তবে আপনি নিম্নলিখিতটি করতে পারেন:

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.