আপনি যদি ইন্টারমিডিয়েট মেশিনে ডেটার অনুলিপি রাখতে খুশি হন তবে আপনি কেবল একটি স্ক্রিপ্ট লিখতে পারেন যা সার্ভার 1 ব্যবহার করে স্থানীয় অনুলিপিটিকে রেফারেন্স হিসাবে আপডেট করে তারপরে সার্ভার 2 তে স্থানীয় কপিটি রেফারেন্স হিসাবে ব্যবহার করে আপডেট করেছে:
#!/bin/sh
rsync user@server1:/path/to/stuff /path/to/loca/copy -a --delete --compress
rsync /path/to/loca/copy user@server2:/path/to/where/stuff/should/go -a --delete --compress
একটি সাধারণ স্ক্রিপ্ট ব্যবহার করার অর্থ আপনার কাছে সমস্ত কিছু করার জন্য তিনি একক আদেশ চেয়েছিলেন। ডেটা সংবেদনশীল হলে অবশ্যই এটি কোনও সুরক্ষিত নম্বর হতে পারে (আপনি বা আপনার সংস্থার অন্যরা আপনার ল্যাপটপে ভাসমান একটি অনুলিপি নাও পেতে পারেন)। যদি সার্ভার 1 আপনার কাছে স্থানীয় হয় তবে আপনি কেবল পরে স্থানীয় কপিটি মুছতে পারবেন (যেহেতু এটি পরবর্তী সময় স্থানীয় ল্যানের মাধ্যমে পুনর্গঠন করা দ্রুত হবে)।
একটি টানেল তৈরি করা যাতে সার্ভারগুলি কার্যকরভাবে একে অপরের সাথে আরও সরাসরি কথা বলতে পারে তার মতো সম্ভব হওয়া উচিত:
- সার্ভার 2 এ / বিন / শ / / ইউএসআর / লোকাল / বিন / শফারকিপালাইভ হিসাবে একটি অনুলিপি করুন। অনুলিপিটির পরিবর্তে প্রতীকী লিঙ্কটি ব্যবহার করুন তারপরে আপনাকে প্যাচ / বিন / শ সুরক্ষা আপডেটের পরে এটি আপডেট করতে হবে না।
সার্ভার 2-তে একটি স্ক্রিপ্ট তৈরি করুন যা কয়েক সেকেন্ডের জন্য ঘুমের লুপ ছাড়া আর কিছুই করে না তারপরে স্বল্প পরিমাণে পাঠ্য প্রতিধ্বনিত করে এবং এইচ এর "কপি" ব্যবহার করুন:
#!/usr/local/bin/shforkeepalive
while [ "1" != "0" ]; do
echo Beep!
sleep 5
done
( echo
সম্ভবত সম্ভবত প্রয়োজন নেই, কারণ এসএসএইচডি এসএসএইচডি ক্লায়েন্টের কাছ থেকে রাখার জন্য প্যাকেটগুলি উপেক্ষা করার জন্য কনফিগার করা থাকলেও সেশনটি দীর্ঘ সময়ের জন্য অলস হয়ে উঠবে না)
এখন আপনি আপনার ল্যাপটপে এমন একটি স্ক্রিপ্ট লিখতে পারেন যা পটভূমিতে আপনার বিপরীত টানেলটি শুরু করে, সার্ভার 1 কে কপি অপারেশন সম্পাদন করতে আরএসসিএনসি ব্যবহার করতে বলে, তারপরে লুপিং স্ক্রিপ্টটি (যা এসএসএইচ সেশনটি বন্ধ করবে) মেরে বিপরীত সুড়ঙ্গকে মেরে ফেলে:
#!/bin/sh
ssh user@server2 -L2222:127.0.0.1:22 /usr/local/bin/keepalivesctipt &
ssh user@server1 -R2222:127.0.0.1:2222 rsync /path/to/stuff user@127.0.0.1:/destination/path/to/update -a --delete --compress -e 'ssh -p 2222'
ssh user@server2 killall shforkeepalive
এটি যেভাবে কাজ করে:
- লাইন 1: চিহ্নিতকারী "এই স্ক্রিপ্টটির ব্যাখ্যার জন্য ব্যবহার করতে কমান্ড"
- লাইন 2: বিপরীত সুড়ঙ্গ দিয়ে একটি এসএসএইচ সংযোগ শুরু করুন এবং এটি চালিয়ে যাওয়ার জন্য এটির মাধ্যমে রক্ষণশীল স্ক্রিপ্টটি চালান। ট্রেলিং এবং ব্যাশটিকে ব্যাকগ্রাউন্ডে চালাতে বলে যাতে পরবর্তী লাইনগুলি শেষ হওয়ার অপেক্ষা না করে চলতে পারে
- লাইন 3: একটি টানেল শুরু করুন যা উপরের টানেলের সাথে সংযুক্ত হবে যাতে সার্ভার 1 সার্ভার 2 দেখতে পারে এবং এই ব্যবস্থাটির অনুলিপি / আপডেট সম্পাদন করতে rsync চালান
- লাইন 4: আরএসসিএনসি অপারেশন শেষ হয়ে গেলে (এবং তাই দ্বিতীয় এসএসএইচ কল রিটার্ন করে) ক্যাপ-লাইভ স্ক্রিপ্টটি মেরে ফেলুন, যা হবে এবং প্রথম এসএসএস সেশন হবে।
এটি বিশেষভাবে পরিষ্কার মনে হয় না, তবে এটি কাজ করা উচিত। আমি উপরেরটি পরীক্ষা করে নি তাই আপনার এটির টুইট করার প্রয়োজন হতে পারে। সার্ভার 1-এ rsync কমান্ডটি একক লাইন স্ক্রিপ্ট তৈরি করা কলিংয়ের এসএসএস কমান্ডের মতো 'অক্ষরগুলি থেকে রক্ষা পাওয়ার কোনও প্রয়োজন হ্রাস করে সাহায্য করতে পারে।
বিটিডাব্লু: আপনি যে দুটি সার্ভার একে অপরকে সরাসরি দেখতে পাচ্ছেন না তার জন্য "জিজ্ঞাসা করবেন না" বলছেন তবে এর পিছনে বেশিরভাগ কারণ রয়েছে। আমার হোম সার্ভার এবং এটির অনলাইন ব্যাকআপগুলি রাখা সার্ভার একে অপরের সাথে লগইন করতে পারে না (এবং সমস্ত ব্যবহারকারীর জন্য বিভিন্ন পাসওয়ার্ড + কী রয়েছে) - এর অর্থ এই যে দু'জনের মধ্যে কোনও একটি হ্যাক হয়ে গেলে এটি ব্যবহারের সহজ রুট হিসাবে ব্যবহার করা যাবে না অন্যটি হ্যাক করুন যাতে আমার অনলাইন ব্যাকআপগুলি নিরাপদ হয় (লাইভ থেকে আমার ডেটা মুছে ফেলা কেউ দূষিত ব্যক্তি বলেন ব্যাকআপগুলি মুছে ফেলার জন্য ব্যাকআপগুলি আপডেট করার ক্ষমতাটি ব্যবহার করতে পারে না, কারণ এটির মূল ব্যাকআপ সাইটে স্পর্শ করার সরাসরি ক্ষমতা নেই)। উভয় সার্ভার উভয়ই অন্যত্র একটি মধ্যবর্তী সার্ভারের সাথে সংযোগ করতে পারে - লাইভ সার্ভারটি খুব সকালে ভোরে মধ্যবর্তী মেশিনে তার ব্যাকআপগুলি (rsync এর মাধ্যমে) ধাক্কা দেওয়ার জন্য সেট করা হয় এবং সংযোগের জন্য ব্যাকআপ সার্ভার সেট (কিছুক্ষণ পরে ধাপে একটি সম্পূর্ণ করার অনুমতি দেয়) সেট করা হয় set এবং আপডেটগুলি সংগ্রহ করুন (ব্যাকআপের একাধিক বয়সের রক্ষণাবেক্ষণের জন্য পুনরায় আরএসসির মাধ্যমে একটি স্ন্যাপশটিং পদক্ষেপ)। এই কৌশলটি আপনার পরিস্থিতিতেও ব্যবহারযোগ্য হতে পারে এবং যদি তাই হয় তবে আমি এটিকে কাজ করার আরও পরিষ্কার উপায় হিসাবে সুপারিশ করব।
সম্পাদনা করুন: / বিন / এস-এর অনুলিপিগুলি এবং সার্ভার 2-এ একটি পৃথক কী-লাইভ স্ক্রিপ্ট সহ সমস্ত মাতামাতি এড়ানোর জন্য হারুনের সাথে আমার হ্যাকটি মার্জ করা আপনার ল্যাপটপের এই লিপিটি পুরো কাজটি করা উচিত:
#!/bin/sh
ssh user@server2 -L2222:127.0.0.1:22 sleep 60 &
pid=$!
trap "kill $pid" EXIT
ssh user@server1 -R2222:127.0.0.1:2222 rsync /path/to/stuff user@127.0.0.1:/destination/path/to/update -a --delete --compress -e 'ssh -p 2222'
উপরের মতো, আরএসসিএনসি লোকালহোস্টের সাথে সংযুক্ত হচ্ছে: 2222 যা আপনার ট্যাপেলের মাধ্যমে আপনার ল্যাপটপের লোকালহোস্ট: 2222 এ টানেলটি ফরোয়ার্ড করে যা অন্য টানেলের মাধ্যমে সার্ভার 2 এর লোকালহোস্ট: 22 এ ফরোয়ার্ড করে।
সম্পাদনা 2: আপনার যদি সার্ভার 1 এর এমন কী রয়েছে যা এটি সরাসরি সার্ভার 2 এর সাথে প্রমাণীকরণের অনুমতি দেয় (যদিও এটি কোনও টানেল ছাড়া সার্ভার 2 দেখতে পাচ্ছে না) আপনি আরও সহজ করতে পারবেন:
#!/bin/sh
ssh user@server1 -R2222:123.123.123:22 rsync /path/to/stuff user@127.0.0.1:/destination/path/to/update -a --delete --compress -e 'ssh -p 2222'
যেখানে 123.123.123.123 হ'ল সার্ভার 2 এর একটি সর্বজনীন ঠিকানা, যা কোনও স্ক্রিপ্টের পরিবর্তে অনুলিপি + পেস্ট ওয়ান-লাইনার হিসাবে ব্যবহার করা যেতে পারে।