ব্যাকআপ শেল স্ক্রিপ্টের অংশে আমার কাছে নিম্নলিখিত কমান্ডটি রয়েছে:
tar -cjf site1.bz2 /var/www/site1/
আমি যখন সংরক্ষণাগারটির বিষয়বস্তুগুলি তালিকাভুক্ত করি তখন আমি পাই:
tar -tf site1.bz2
var/www/site1/style.css
var/www/site1/index.html
var/www/site1/page2.html
var/www/site1/page3.html
var/www/site1/images/img1.png
var/www/site1/images/img2.png
var/www/site1/subdir/index.html
তবে /var/www/site1
নিষ্কাশনকে সহজ করার জন্য এবং অকেজো ধ্রুবক ডিরেক্টরি কাঠামো এড়ানোর জন্য আমি সংরক্ষণাগারটির মধ্যে ডিরেক্টরি এবং ফাইলের নাম ফাইল থেকে অংশটি সরিয়ে দিতে চাই । কখনই জানেন না, যদি আমি এমন জায়গায় ব্যাকআপযুক্ত ওয়েবসাইটগুলি বের করতে পারি যেখানে ওয়েব ডেটা সংরক্ষণ করা হয়নি /var/www
।
উপরের উদাহরণের জন্য, আমি চাই:
tar -tf site1.bz2
style.css
index.html
page2.html
page3.html
images/img1.png
images/img2.png
subdir/index.html
সুতরাং, আমি যখন নিষ্কাশন করব, তখন বর্তমান ডিরেক্টরিতে ফাইলগুলি বের করা হয় এবং পরে আমাকে এক্সট্রাক্ট করা ফাইলগুলি সরানোর দরকার হয় না, এবং যাতে উপ-ডিরেক্টরি কাঠামো সংরক্ষণ করা হয়।
stackoverflow
ওয়েবে এবং অন্যান্য জায়গাগুলিতে টার এবং ব্যাকআপ নেওয়া সম্পর্কে ইতিমধ্যে অনেকগুলি প্রশ্ন রয়েছে তবে তাদের বেশিরভাগই সম্পূর্ণ উপ-ডিরেক্টরি কাঠামো (সমতলকরণ) বাদ দেওয়ার জন্য বলেন বা নামগুলি প্রাথমিক / যোগ করুন বা মুছে ফেলুন (আমি ডন করি না ') টি বের করার সময় ঠিক কী পরিবর্তিত হয় তা জানেন), তবে আর নেই।
ম্যানুয়ালটিতে এখানে এবং সেখান থেকে পাওয়া কয়েকটি সমাধান পড়ার পরে আমি চেষ্টা করেছি:
tar -cjf site1.bz2 -C . /var/www/site1/
tar -cjf site1.bz2 -C / /var/www/site1/
tar -cjf site1.bz2 -C /var/www/site1/ /var/www/site1/
tar -cjf site1.bz2 --strip-components=3 /var/www/site1/
তবে তাদের কেউই আমার পছন্দ মতো কাজ করেনি। কেউ কিছুই করেন না, আবার কেউ কেউ সাব-ডিরেক্টরি সংরক্ষণাগারভুক্ত করেন না।
এটি ক্রোন দ্বারা চালু একটি ব্যাকআপ শেল স্ক্রিপ্টের অভ্যন্তরে, তাই আমি ভাল করে জানিনা, কোন ব্যবহারকারী এটি চালায়, কী পাথ এবং বর্তমান ডিরেক্টরিটি রয়েছে, তাই সর্বদা সর্বদা জন্য নিখুঁত পথ লেখার প্রয়োজন হয় এবং বর্তমান ডিরেক্টরিটি পরিবর্তন না করা পছন্দ করবেন স্ক্রিপ্টে আরও কিছু না ভাঙ্গতে (কারণ এটি কেবল ওয়েবসাইটগুলিই নয়, ডাটাবেসগুলি ব্যাকআপ করে, তারপরে এটি সমস্ত এফটিপিতে প্রেরণ করে)
কীভাবে এটি অর্জন করবেন?
অপশন-সি কীভাবে কাজ করে তা আমি কী ভুল বুঝেছি?
-C
কেবলমাত্র "ডিরেক্টরি পরিবর্তন করুন" এর অর্থ একটি পাথ (বা উপসর্গ) প্রতিস্থাপন করার সময় কেবলমাত্র এর মাধ্যমে করা যেতে পারে --transform
। Rif। superuser.com/questions/595510/prepend-prefix-in-tar/595512 আপনাকে সহজ -C (পরিবর্তন ডিরেক্টরি) এবং --transform পারেন: `` আলকাতরা cjf site1.bz2 --transform "S / ^ \ \। // $ টার্গেটবেস / "-সি / ভেরি / www / সাইট 1। `` `