আমি একটি স্থানীয় ড্রাইভে ঘন ঘন ব্যাকআপগুলি করি যা আমি প্রতিদিন একটি দূরবর্তী সার্ভারে সিঙ্ক করতে চাই।
লক্ষ্য সার্ভারটি কেবল এসএসএইচ কী (কোনও পাসওয়ার্ড নয়) অ্যাক্সেসের জন্য কনফিগার করা হয়েছে। যেহেতু সেই সার্ভারের জন্য আমার প্রাথমিক এসএসএইচ কী পাসফ্রেজ-সুরক্ষিত, তাই আমি অপ্রত্যাশিত ব্যাকআপগুলির জন্য ব্যবহার করার জন্য একটি দ্বিতীয় এসএসএইচ কী (পাসফ্রেজ সুরক্ষিত নয়) + ব্যবহারকারী তৈরি করেছি - ক্রোন চলাকালীন আমার পাসফ্রেজে প্রবেশের জন্য আমাকে উপস্থিত থাকতে হবে না ।
আমি ক্রোন এবং আরএসএনসি ব্যবহার করছি এবং সমস্ত কমান্ড পৃথকভাবে কাজ করে, তবে সংযুক্ত হয়ে ব্যর্থ হয়।
ট্রাবলশুটিং চলাকালীন আমি এখনি পেয়েছি
env -i sh -c "rsync -lrstRO --delete --exclude 'lost+found' /Backups/auto-daily-backups/./ backups-only@XX.XX.XX.XX:/backups/desktop/"
যা ত্রুটি প্রদান করে
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]
এটি আরও কীভাবে সমস্যা সমাধান করবেন তার কোনও পরামর্শ?
আমি এখন পর্যন্ত যা চেষ্টা করেছি তা এখানে এবং আমি ধারণার বাইরে রয়েছি:
- ক্রোন অবশ্যই চলছে
ps aux | grep cron / Var / লগ / সিসলগে কোনও অস্বাভাবিক কিছুই নয়
Sep 7 13:22:01 desktop CRON[6735]: (tom) CMD (sh /home/tom/Documents/Scripts/offsite-backup)ব্যাকআপ ব্যবহারকারীর কাজ করে টার্মিনালে রিমোট সার্ভারে এসএসএইচ
ssh backups-user@XX.XX.XX.XX- টার্মিনালে কমান্ড চালানো নিখুঁতভাবে কাজ করে
rsync -lrstRO --delete --exclude 'lost+found' /Backups/auto-daily-backups/./ backups-only@XX.XX.XX.XX:/backups/desktop/ ব্যাকআপগুলি-ব্যবহারকারী কীটির জন্য ম্যানুয়ালি পাথ নির্দিষ্ট করে দেওয়ার কোনও প্রভাব নেই
rsync -lrstRO --delete --exclude 'lost+found' -e 'ssh -i /home/tom/.ssh/backups-only' /Backups/auto-daily-backups/./ backups-only@XX.XX.XX.XX:/backups/desktop/একটি সাধারণ পরীক্ষা কমান্ডের সাথে অ-কার্যকারী কমান্ডকে প্রতিস্থাপন করা কাজ করে
echo "Hello world" > ~/Desktop/test.txtকম্পিউটারে শোরগোল / শপথের কোনও প্রভাব ছিল না (তবে আমাকে অস্থায়ীভাবে আরও ভাল লাগা হয়েছে)।
সম্পাদনা 1:
এখানে আমার ক্রন্টব ফাইল এবং স্ক্রিপ্টটি এটি কল করে।
...
# m h dom mon dow command
MAILTO=""
* * * * * sh /home/tom/Documents/Scripts/offsite-backup
এবং
#!/bin/bash
rsync -lrstRO --delete --exclude 'lost+found' /Backups/auto-daily-backups/./ backups-only@XX.XX.XX.XX:/backups/desktop/
সম্পাদনা 2:
কেবল স্পষ্ট /var/log/auth.logকরে বলতে গেলে, টার্গেট সার্ভারে লাইন রয়েছে এটি Sep 11 08:23:01 <hostname> CRON[24421]: pam_unix(cron:session): session closed for user rootবিভ্রান্তিকর কারণ আমি প্রতি মিনিটে স্থানীয়ভাবে ক্রোন চালাচ্ছি না, তবে সার্ভার লগগুলিতে প্রতি মিনিটে একটি নতুন এন্ট্রি এখনও উপস্থিত হয়। সার্ভারে সমস্ত ব্যবহারকারীর (রুট সহ) ক্রন্টব ফাইলগুলি খালি রয়েছে এবং কিছুই করছে না।
এছাড়াও, কেবলমাত্র সার্ভারে এবং সীমিত অধিকারের সাথে ব্যবহারকারীর 'ব্যাকআপ-কেবল' তৈরি করা হয়েছিল, একটি ডেডিকেটেড এসএসএইচ কীটি আমার ডেস্কটপ মেশিনে অনুলিপি করে। আমি ধরেই নিচ্ছি এটি যাওয়ার উপায় কারণ আদেশগুলি ম্যানুয়ালি চালানোর সময় সবকিছু কাজ করে।
উপরে পোস্ট করা ক্রন্টব ফাইলটি আমার জন্য, আমার ডেস্কটপ মেশিনে ব্যবহারকারী 'টম'। আমার উদ্দেশ্য হ'ল এটিতে স্ক্রিপ্টটি কল করা উচিত যা ব্যবহারকারীর 'ব্যাকআপ-কেবল' হিসাবে সার্ভারে লগ ইন করা উচিত। আমি কেবল ব্যাকআপ স্ক্রিপ্টটি চালানোর চেষ্টা করেছি (এর ভিতরে থাকা কমান্ডের চেয়ে) এবং এটি সফলভাবে সংযুক্ত ও কাজ করেছে। আমি এটি 'টম' ব্যবহারকারী হিসাবে আমার ডেস্কটপে চালিয়েছি, একই ব্যবহারকারী যিনি ক্রোন জব তৈরি করেছেন যা কাজ করবে না। এখানে সফল লগইনের সাথে সম্পর্কিত সার্ভার লগ থেকে আউটপুট
Sep 11 08:35:31 <hostname> sshd[25071]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Sep 11 08:35:32 <hostname> sshd[25071]: Accepted publickey for backups-only from <desktop IP> port 54242 ssh2: RSA e2:e6:07:27:c1:continues...
Sep 11 08:35:32 <hostname> sshd[25071]: pam_unix(sshd:session): session opened for user backups-only by (uid=0)
Sep 11 08:35:32 <hostname> systemd-logind[638]: New session 12 of user backups-only.
Sep 11 08:36:00 <hostname> sshd[25133]: Received disconnect from <desktop IP>: 11: disconnected by user
Sep 11 08:36:00 <hostname> sshd[25071]: pam_unix(sshd:session): session closed for user backups-only
Sep 7 14:45:01 <hostname> CRON[18716]: pam_unix(cron:session): session closed for user root
Sep 7 16:06:02 <hostname> sshd[6747]...। আপনি কি 100% ইতিবাচক যে এই লগলাইনটি সার্ভার থেকে এসেছে এবং এটি সঠিক লাইন? আপনি যে ক্রন্টব পোস্ট করেছেন তা কি কেবল ব্যাকআপের ক্রন্টব ? এছাড়াও, পরিচয় ফাইলটি ম্যানুয়ালি যুক্ত করার চেষ্টা করুন:rsync .... -e 'ssh -i /home/user/.ssh/identity' ...
auth.logসম্পাদনা 2 এর অধীনে আপনার পোস্ট করা লাইনটি সার্ভারে ক্রোন চলার জন্য, এবং আপনার লগইন প্রচেষ্টাগুলির সাথে কোনও সম্পর্ক নেই। আপনি চেষ্টা করতে পারেন tail -f /var/log/auth.logসার্ভারে যখন আপনি ক্রন মাধ্যমে স্ক্রিপ্ট চালানোর চেষ্টা করছেন? এছাড়াও, আমি নিশ্চিত না যে এটি কাজ করে কিনা, তবে আপনি কি আপনার প্রথম envকমান্ডটি rsync .... -e 'ssh -vvv -i /home/user/.ssh/identity ...আরও ত্রুটি ছুঁড়ে ফেলে কিনা তা দেখতে চেষ্টা করতে পারেন?