কেবল মেশিন জুড়েই আমি কীভাবে ফাইল / ফোল্ডারগুলি পৃথক করতে পারি যে কেবলমাত্র সংযোগ উপলব্ধ রয়েছে?
কেবল মেশিন জুড়েই আমি কীভাবে ফাইল / ফোল্ডারগুলি পৃথক করতে পারি যে কেবলমাত্র সংযোগ উপলব্ধ রয়েছে?
উত্তর:
আপনি এটি বাশের প্রক্রিয়া বিকল্পের সাথে করতে পারেন :
diff foo <(ssh myServer 'cat foo')
অথবা, যদি উভয়ই দূরবর্তী সার্ভারে থাকে:
diff <(ssh myServer1 'cat foo') <(ssh myServer2 'cat foo')
অবশেষে আমি দুর্দান্ত সমাধান পেয়েছি: ভিমডিফ
vimdiff /path/to/file scp://remotehost//path/to/file
ধন্যবাদ http://linux.spiney.org/remote_diff_with_vim_and_ssh দেখতে http://www.vim.org/scripts/script.php?script_id=1075 ।
//
পরে 2 স্ল্যাশ remotehost
। একক স্ল্যাশ কাজ করবে না
vimdiff /path/to/file scp://username@remotehost//path/to/file
এখানে আরও একটি দ্রুত এবং নোংরা কমান্ড লাইন রেসিপি দেওয়া আছে। নির্বাচিত উত্তরের বিপরীতে, এটি মেকফাইলগুলির অভ্যন্তরে কাজ করে:
ssh [login]@[host] "cat [remote file]" | diff - "[local file]"
একটি সাধারণ মেশিনে ফাইল আনার জন্য scp ব্যবহার করবেন এবং সেগুলি সেখানে আলাদা করুন?
অথবা, যদি আপনি শুধু জানতে যদি ফাইল প্রাপ্ত করতে ইচ্ছুক হয় বিভিন্ন বা না, তাদের প্রতিটি মেশিনের উপর একাধিক md5sum সঙ্গে হ্যাশ।
আপনি এসএসএইচএফএসের মতো কিছুতেও নজর রাখতে পারেন , তবে আমি জানি না যে ডিফের মতো একটি অ্যালগোরিদম এটির চেয়ে কতটা ভাল সম্পাদন করে।
rsync --dry-run
।
আপনার সিস্টেমে যদি এটি সম্ভব হয় তবে একটি উপায় হ'ল কেবল sshfs সহ দূরবর্তী ফাইল সিস্টেমটি মাউন্ট করা ।
আপনি rsync
শুকনো রান মোডে ব্যবহার করতে পারেন , অন্য উত্তরে সংক্ষেপে প্রস্তাবিত হিসাবে । এটি যে কোনও ফাইলের তালিকা পৃথক করে।
তার জন্য, rvnc
বিকল্পগুলি ব্যবহার করুন ( r
= পুনরাবৃত্ত, v
= ভার্বোস, n
= শুকনো রান, c
= চেকসাম)। সঙ্গে rsync
খিঁচ মোড (মধ্যে rsync [OPTION...] [USER@]HOST:SRC... [DEST]
), একটি উদাহরণ রয়েছে:
rsync -rvnc root@182.18.158.207:/var/www/html/dev/ .
মনে রাখবেন , স্থানীয় বা দূরবর্তী ফাইলটি আরও নতুন কিনা তা কোনও তথ্য সরবরাহ করে না। শুধু যদি তারা ভিন্ন হয়।
আপনার স্থানীয় মেশিনে, আপনি যে ডিরেক্টরিটি পৃথক করতে চান তার একটি পুনরাবৃত্ত কপি তৈরি করুন। এই ক্ষেত্রে:
cp -R dir replica
স্থানীয় অনুলিপি থেকে রিমোট ডিরেক্টরিটি প্রতিলিপি করতে rsync ব্যবহার করুন:
rsync remote:/path/to/dir replica
স্থানীয় ডিরেক্টরি এবং দূরবর্তী একের স্থানীয় প্রতিরূপের মধ্যে পার্থক্য জানতে ডিফ ব্যবহার করুন:
diff dir replica
এখানে আমি এটি কীভাবে করেছি।
আমি রিমোট সার্ভারে এসএফটিপি ব্যবহার করেছি এবং অনুরোধ করা হলে আমার ব্যবহারকারীর নাম / পিডাব্লুডি প্রবেশ করিয়েছি। তারপরে আমি আমার হোম ডিরেক্টরিতে .gvfs dir তৈরি করা দিরটি ভিন্ন কমান্ডটিতে ব্যবহার করেছি।
ডিফ / বার / বাস / ব্যবহারকারী ডির / .gvfs / এসএফটিপি \ উপর reen freenas.local / দির / dir1 / স্থানীয় dir / dir2 পাথ
এটি এমন একটি স্ক্রিপ্ট যা স্থানীয় ফোল্ডার এবং দূরবর্তী ফোল্ডারটিকে পৃথক করতে সহায়তা করতে পারে .:
#!/bin/bash
LOCALFOLDER=/var/www/tee
REMOTEFOLDER=$(ssh root@111.111.111.1 'ls -lA /hfs/tee'| grep -E '^total' | cut -d " " -f 2 > remotessh.txt)
COMMAND=$(ls -lA $LOCALFOLDER | grep -E '^total' | cut -d " " -f 2 > localssh.txt)
REM=$(cat remotessh.txt)
LOCAL=$(cat localssh.txt)
echo $LOCAL
echo $REM
if [ $REM -eq $LOCAL ]
then
echo Directories are the same
else
echo Directories are differnt
fi
#diff localssh.txt remotessh.txt | grep -E '^total' | cut -d " " -f 2
http://myfedora.co.za/2012/04/diff-two-remote-file-systems/
ডিফার্ফ (</ / usr / বিন / ssh user1@192.168.122.1 'ls / opt / lib /') <(/ usr / বিন / ssh user2@192.168.122.1 'ls / tmp /') | grep -i ">" | | সেড 's /> // জি'
আপনি সম্ভবত আপনার ~ / .bashrc এ বাশ ফাংশন তৈরি করে পদ্ধতির সাধারণকরণের চেষ্টা করতে পারেন:
myrdiff() { ssh root@"$1" cat "$2" | diff -s - "$2" ; }
তারপরে এটিকে একটি নির্মাণের সাথে অনুরোধ করুন:
myrdiff vm20-x86-64 /etc/gdm/Init/Default
-S এর সাথে পৃথককে অনুরোধ করে, ফাইলগুলি অভিন্ন হলে এটি প্রতিবেদন করবে।
চিয়ার্স! জিম
rsync -ani --delete / root@remotehost:/
তবে পুরো উত্তরটি আরও বিশদ দেয়।