আমি এক্স এর চেয়ে কম আকারের ফাইলগুলি কীভাবে স্ক্র্যাপ করব?


13

আমি আমার ল্যাপটপে কিছু বিকাশ করছি এবং একটি উচ্চ পারফরম্যান্স পিসি (কোনও মনিটরবিহীন একটি সার্ভার) এ ফাইলগুলি স্কপ করছি। অলসতার বাইরে আমি বর্তমানে এটি করছি (ল্যাপটপে):

scp -r ~/project/* server:~/project/

তবে প্রকল্প ডিরেক্টরিতে কিছু ফাইল হ'ল কিছু লগ ফাইল এবং আউট ফাইল যা আমাকে প্রেরণের দরকার হয় না, যা কখনও কখনও গিগ বা আরও কিছু হতে পারে। আমি যা চাই তা একটি সুন্দর ক্লিন কমান্ড যা মূলত একই জিনিসটি করে (প্রকল্পের সমস্ত ফাইল এবং এর উপ-ডিরেক্টরিগুলি প্রেরণ করে) তবে কেবলমাত্র একটি নির্দিষ্ট ফাইলাইজ থ্রেশহোল্ডের অধীনে ফাইল পাঠায় যেমন 100 এমবি। আমি কেবল হালকাভাবে ব্যাশের সাথে অভিজ্ঞ এবং রেইগএক্সপ এর সাথে মোটেও নই তাই কোন জাঁকজমকপূর্ণ পদ্ধতি যেমন পাইথনে সিস আমদানি করা এবং আইএফএস এবং তুলনা গুলির একগুচ্ছ ব্যবহার না করে কীভাবে এটি করা যায় তা সম্পর্কে আমার কোনও ধারণা নেই।

উত্তর:


27

আপনি 'rsync' কমান্ডটি ব্যবহার করতে পারেন যা বাদ দিয়ে ফাইলের আকার নিয়ন্ত্রণ করার বিকল্প রয়েছে।

rsync -rv --max-size=100m /path/in/local/ server:~/project/

' man rsync ' থেকে,

--max-size=SIZE    don't transfer any file larger than SIZE

আপডেট হওয়া উত্তর : নীচে কেবল 'rsync' - এক্সক্লুড অপশন সহ লগ ফাইলগুলি বাদ দিন

rsync -rv --exclude='*.log' --max-size=100m /path/in/local/ server:~/project/

অথবা আপনি 'scp' এর সাথে 'ফাইন্ড' কমান্ড সংমিশ্রণটি ব্যবহার করতে পারেন এবং এর -sizeবিকল্পের সাথে ফাইলের আকার সীমা নির্দিষ্ট করতে পারেন । ! -name '*.log''লগ' দিয়ে শেষ হওয়া নির্দিষ্ট ফাইলগুলি বাদ দিতে ব্যবহার করুন ।

find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;

1
ওপির জন্য একটি নোট: rsyncঅনুরূপ scp, তবে আরও দক্ষ, কারণ এটি কোনও ফাইল পরিবর্তিত হলে কেবল পরিবর্তনগুলি স্থানান্তর করে।
ধানের ল্যান্ডাউ

ডিরেক্টরি হিসাবে ক্রম সাবধানrsync -rv --max-size SOURCE DESTINATION । আমি সঠিকভাবে পড়িনি, এবং এই গোষ্ঠীর খুব খারাপ পরিণতি হয়েছে।
টোটো_টিকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.