মূলত আমার ব্লগে পোস্ট হয়েছে: http://eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2/
আপনার এস 3 বালতি পর্যায়ক্রমে একটি ইসি 2 সার্ভারের সাথে সিঙ্ক করুন
একাধিক কমান্ড লাইন ইউটিলিটিগুলি ব্যবহার করে সহজেই এটি অর্জন করা যায় যা স্থানীয় ফাইল সিস্টেমে একটি রিমোট এস 3 বালতি সিঙ্ক করা সম্ভব করে।
s3cmd
প্রথমে s3cmd
অত্যন্ত আশাব্যঞ্জক লাগছিল। যাইহোক, আমার প্রচুর এস 3 বালতিতে চেষ্টা করার পরে - এটি স্কেল করতে ব্যর্থ হয়েছিল, একটি দিয়ে ত্রুটিযুক্ত Segmentation fault
। যদিও এটি ছোট বালতিগুলিতে দুর্দান্ত কাজ করেছে। যেহেতু এটি বিশাল বালতিগুলির জন্য কাজ করে না, তাই আমি একটি বিকল্প খুঁজতে বেরিয়েছি।
s4cmd
এর নতুন, বহু-থ্রেড বিকল্প s3cmd
। আরও প্রতিশ্রুতিবদ্ধ লাগছিল, তবে, আমি লক্ষ্য করেছি যে এটি স্থানীয় ফাইল সিস্টেমে ইতিমধ্যে উপস্থিত ফাইলগুলি পুনরায় ডাউনলোড করা চালিয়ে গেছে। সিঙ্ক কমান্ড থেকে আমি যে ধরনের আচরণের প্রত্যাশা করছিলাম তা নয়। এটি দূরবর্তী ফাইলটি ইতিমধ্যে স্থানীয়ভাবে উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখা উচিত (হ্যাশ / ফাইলসাইজ চেকিং ঝরঝরে হবে) এবং এটি একই লক্ষ্য ডিরেক্টরিতে পরবর্তী সিঙ্কে চালানো উচিত। এই অদ্ভুত আচরণটি রিপোর্ট করার জন্য আমি একটি সমস্যা ( ব্লুম্রিচ / এস 4 সেমিডি / # 46 ) খুললাম । এরই মধ্যে, আমি অন্য একটি বিকল্প সন্ধানের উদ্দেশ্যে রওনা হলাম।
awscli
এবং তারপরে আমি খুঁজে পেয়েছি awscli
। এটি তাদের বিভিন্ন ক্লাউড পরিষেবাদির সাথে ইন্টারেক্ট করার জন্য অ্যামাজনের সরকারী কমান্ড লাইন ইন্টারফেস, এস 3 অন্তর্ভুক্ত।
এটি একটি দরকারী সিঙ্ক কমান্ড সরবরাহ করে যা দ্রুত এবং সহজেই আপনার স্থানীয় ফাইল সিস্টেমে রিমোট বালতি ফাইলগুলি ডাউনলোড করে ।
ws aws s3 sync s3: // আপনার বালতি-নাম / বাড়ি / উবুন্টু / এস 3 / আপনার বালতি-নাম /
উপকারিতা:
- স্কেলেবল - বিশাল এস 3 বালতি সমর্থন করে
- একাধিক থ্রেডযুক্ত - একাধিক থ্রেড ব্যবহার করে ফাইলগুলি দ্রুত সিঙ্ক করে
- স্মার্ট - শুধুমাত্র নতুন বা আপডেট হওয়া ফাইল সিঙ্ক করে
- দ্রুত - এটির বহু-থ্রেডযুক্ত প্রকৃতি এবং স্মার্ট সিঙ্ক অ্যালগরিদমকে ধন্যবাদ
দুর্ঘটনা মোছা
সুবিধাজনকভাবে, sync
কমান্ডটি গন্তব্য ফোল্ডারে (স্থানীয় ফাইল সিস্টেম) ফাইলগুলি মুছে ফেলবে না যদি তারা উত্স (এস 3 বালতি) থেকে হারিয়ে যায় এবং তদ্বিপরীত হয়। এটি এস 3 ব্যাক আপ করার জন্য উপযুক্ত - যদি ফাইলগুলি বালতি থেকে মুছে ফেলা হয়, পুনরায় সিঙ্ক করার সাথে এটি স্থানীয়ভাবে মুছবে না। এবং যদি আপনি কোনও স্থানীয় ফাইল মুছে ফেলেন তবে এটি উত্স বালতি থেকেও মুছবে না।
উবুন্টু 14.04 এলটিএসে অস্ট্রেলি সেট আপ করা হচ্ছে
আসুন ইনস্টল দ্বারা শুরু করা যাক awscli
। এটি করার বিভিন্ন উপায় রয়েছে তবে আমি এটির মাধ্যমে এটি ইনস্টল করা সবচেয়ে সহজ খুঁজে পেয়েছি apt-get
।
do sudo অ্যাপ্লিকেশন - অ্যাপ্লিকেশন ইনস্টল
কনফিগারেশন
এর পরে, awscli
আমাদের একটি অ্যাক্সেস কী আইডি এবং সিক্রেট কী দিয়ে কনফিগার করতে হবে যা আপনাকে আইএএম থেকে অবশ্যই গ্রহণ করতে হবে , একটি ব্যবহারকারী তৈরি করে এবং অ্যামাজনএস 3 রিডঅনলিঅ্যাক্সেস নীতি সংযুক্ত করে । এটি আপনাকে বা যে কেউ এই শংসাপত্রগুলিতে আপনার S3 ফাইলগুলি মুছে ফেলা থেকে আটকায় will আপনার এস 3 অঞ্চলে প্রবেশের বিষয়টি নিশ্চিত করুন us-east-1
।
ws aws কনফিগার করুন
প্রস্তুতি
এর স্থানীয় এস 3 ব্যাকআপ ডিরেক্টরির প্রস্তুত বাঞ্ছনীয় মধ্যে দিন /home/ubuntu/s3/{BUCKET_NAME}
। {BUCKET_NAME}
আপনার আসল বালতির নামটি প্রতিস্থাপন করতে ভুলবেন না ।
$ এমকেডির-পি / হোম / উবুন্টু / এস 3 / U বুক্কিএআইআইএল}
প্রাথমিক সিঙ্ক
নীচের কমান্ডের সাথে প্রথমে বালতিটি সিঙ্ক করুন:
ws aws s3 sync s3: // U BUCKET_NAME} / home / ubuntu / s3 / U BUCKET_NAME} /
বালতি বিদ্যমান বলে ধরে নিলে, এডাব্লুএসের শংসাপত্র এবং অঞ্চলটি সঠিক, এবং গন্তব্য ফোল্ডারটি বৈধ, awscli
পুরো বালতিটি স্থানীয় ফাইল সিস্টেমে ডাউনলোড করা শুরু করবে।
বালতির আকার এবং আপনার ইন্টারনেট সংযোগের উপর নির্ভর করে এটি কয়েক সেকেন্ড থেকে কয়েক ঘন্টা পর্যন্ত সময় নিতে পারে। এটি হয়ে গেলে, আমরা বালতিটির স্থানীয় অনুলিপি আপ টু ডেট রাখার জন্য এগিয়ে যাব এবং একটি স্বয়ংক্রিয় ক্রোন জব সেট করব।
ক্রোন জব স্থাপন করা
এগিয়ে যান এবং এখানে একটি sync.sh
ফাইল তৈরি করুন /home/ubuntu/s3
:
। ন্যানো / হোম / বুন্টু / এস 3/sync.sh
নিম্নলিখিত কোডটি অনুলিপি করুন এবং আটকান sync.sh
:
#! / বিন / শ
# বর্তমান তারিখ এবং সময় প্রতিধ্বনি করুন
প্রতিধ্বনি '-----------------------------'
তারিখ
প্রতিধ্বনি '-----------------------------'
প্রতিধ্বনি ''
# ইকো স্ক্রিপ্টের সূচনা
প্রতিধ্বনি 'রিমোট এস 3 বালতি সিঙ্ক হচ্ছে ...'
# আসলে সিঙ্ক কমান্ডটি চালান (আপনার এস 3 বাল্টির নামের সাথে {BUCKET_NAME replace প্রতিস্থাপন করুন)
/ usr / bin / aws s3 sync s3: // U BUCKET_NAME} / home / ubuntu / s3 / U BUCKET_NAME} /
# ইকো স্ক্রিপ্ট সমাপ্তি
প্রতিধ্বনি 'সিঙ্ক সম্পূর্ণ'
স্ক্রিপ্ট জুড়ে দুবার আপনার S3 বালতি নামের সাথে {BUCKET_NAME} প্রতিস্থাপনের বিষয়টি নিশ্চিত করুন ।
প্রো টিপ:/usr/bin/aws
আপনার aws
বাইনারি লিঙ্ক করতে ব্যবহার করা উচিত , যেমন crontab
একটি সীমাবদ্ধ শেল পরিবেশে কমান্ডগুলি কার্যকর করে এবং নিজে থেকে নির্বাহযোগ্যকে খুঁজে পেতে সক্ষম হবেন না।
এরপরে, chmod
স্ক্রিপ্টটি নিশ্চিত করুন যাতে এটি চালানো যেতে পারে crontab
।
$ sudo chmod + x / home/ubuntu/s3/sync.sh
আসুন স্ক্রিপ্টটি এটি কার্যকরভাবে কাজ করে তা চালানোর চেষ্টা করুন:
$ / home/ubuntu/s3/sync.sh
আউটপুট এর সাথে একই রকম হওয়া উচিত:
এর crontab
পরে, নিম্নলিখিত কমান্ডটি সম্পাদন করে বর্তমান ব্যবহারকারীর সম্পাদনা করা যাক :
$ crontab -e
এটি যদি আপনার প্রথমবারের মতো কার্যকর হয় তবে crontab -e
আপনাকে পছন্দসই সম্পাদক নির্বাচন করতে হবে। আমি এটি বাছাইয়ের পরামর্শ দিচ্ছি যে nano
এটির সাথে কাজ করা প্রাথমিকদের পক্ষে সবচেয়ে সহজ।
সিঙ্ক ফ্রিকোয়েন্সি
crontab
আমাদের স্ক্রিপ্টটি কতবার চালাতে হবে এবং কমান্ড লিখে স্থানীয় ফাইল সিস্টেমে স্ক্রিপ্টটি কোথায় থাকে তা আমাদের জানাতে হবে । এই আদেশের বিন্যাসটি নিম্নরূপ:
mh dom mon dow কমান্ড
নিম্নলিখিত কমান্ডটি প্রতি ঘন্টা স্ক্রিপ্টটি crontab
চালানোর জন্য কনফিগার sync.sh
করে (মিনিট: 0 এবং ঘন্টা: * পরামিতিগুলির মাধ্যমে নির্দিষ্ট করা হয়) এবং এটি sync.log
আমাদের s3
ডিরেক্টরিতে কোনও স্ক্রিপ্টের আউটপুট পাইপ করতে :
0 * * * * / home/ubuntu/s3/sync.sh> / home/ubuntu/s3/sync.log
আপনি যে crontab
ফাইলটি সম্পাদনা করছেন তার নীচে আপনার এই লাইনটি যুক্ত করা উচিত । তারপরে, এগিয়ে যান এবং Ctrl + W টিপুন এবং তারপরে এন্টার টিপে ফাইলটি ডিস্কে সংরক্ষণ করুন । তারপরে আপনি Ctrl + Xnano
টিপে প্রস্থান করতে পারেন । এখন প্রতি ঘন্টা সিঙ্ক টাস্ক চালাবে।crontab
প্রো টিপ: আপনি যাচাই করতে পারবেন যে প্রতি ঘন্টার ক্রোন কাজটি কার্যকরভাবে সম্পাদন করা হচ্ছে /home/ubuntu/s3/sync.log
, কার্যকর করার তারিখ ও সময় পরীক্ষা করে এর সামগ্রীগুলি পরীক্ষা করে এবং কোন নতুন ফাইল সিঙ্ক হয়েছে তা দেখতে লগগুলি পরীক্ষা করে insp
সব সেট! আপনার এস 3 বালতি এখন প্রতি ঘন্টা স্বয়ংক্রিয়ভাবে আপনার ইসি 2 সার্ভারের সাথে সিঙ্ক হবে এবং আপনাকে যেতে হবে। সময়ের সাথে সাথে মনে রাখবেন যে আপনার এস 3 বালতিটি বড় হওয়ার সাথে সাথে আপনাকে নতুন ফাইলগুলি সংযুক্ত করতে আপনার ইসি 2 সার্ভারের ইবিএস ভলিউমের আকার বাড়াতে হতে পারে। আপনি এই নির্দেশিকাটি অনুসরণ করে সর্বদা আপনার ইবিএস ভলিউমের আকার বাড়িয়ে তুলতে পারেন ।