විලී වීලර්ගේ පිළිතුරෙහි නවීකරණය කරන ලද අනුවාදයක් වන අතර එය ගොනුව (ය) තාර හරහා මාරු කරන අතර දුරස්ථ ධාරකයේ සුඩෝ වෙත මුරපදයක් යැවීමටද සහාය වේ.
(stty -echo; read passwd; stty echo; echo $passwd; tar -cz foo.*) \
| ssh remote_host "sudo -S bash -c \"tar -C /var/www/ -xz; echo\""
මෙහි ඇති අමතර මැජික් ටිකක් සුඩෝ සඳහා -S විකල්පයයි. සුඩෝ මෑන් පිටුවෙන්:
-S, --stdin ටර්මිනල් උපාංගය භාවිතා කිරීම වෙනුවට සම්මත දෝෂයට විමසුම ලියා සම්මත ආදානයෙන් මුරපදය කියවන්න. මුරපදය නව රේඛා අක්ෂරයකින් අනුගමනය කළ යුතුය.
දැන් අපට ඇත්ත වශයෙන්ම අවශ්ය වන්නේ තාරයේ ප්රතිදානය ssh තුළට නල මාර්ගයට ගෙන ඒමයි. එමඟින් ssh හි stdin තාරයේ stdout වෙත හරවා යවන අතර අන්තර්ක්රියාකාරී පර්යන්තයෙන් sudo වෙත මුරපදය යැවීමට ඇති ඕනෑම ක්රමයක් ඉවත් කරයි. . උප කුලකය ssh බවට. අපගේ මුරපදය අඩංගු පරිසර විචල්යයක් අපගේ අන්තර්ක්රියාකාරී කවචයේ නොතැබීමේ අමතර වාසියක් ද මෙයට ඇත.
විමසුමක් මුද්රණය කිරීම සඳහා -p විකල්පය සමඟ මම 'කියවීම' ක්රියාත්මක නොකළ බව ඔබට පෙනෙනු ඇත. මෙයට හේතුව සුඩෝ වෙතින් මුරපද විමසුම ssh හරහා අපගේ අන්තර්ක්රියාකාරී කවචයේ stderr වෙත පහසුවෙන් ලබා දීමයි. "අපගේ පයිප්පයේ දකුණට ssh ඇතුලත ක්රියාත්මක වන විට සුඩෝ ක්රියාත්මක වන්නේ කෙසේද?" අපි බහුවිධ විධානයන් ක්රියාත්මක කර එකිනෙකට ප්රතිදානය පයිප්ප කරන විට, මව් කවචය (මෙම නඩුවේ අන්තර්ක්රියාකාරී කවචය) එක් එක් විධානය කලින් ක්රියාත්මක කළ විගසම අනුක්රමයෙහි ක්රියාත්මක කරයි. පයිප්පයක් පිටුපස ඇති සෑම විධානයක්ම ක්රියාත්මක වන විට, මව් කවචය වම් පස පැත්තෙහි දකුණු පස ඇති ස්ටැඩින් එකට සම්බන්ධ කරයි (හරවා යවයි). ක්රියාවලිය හරහා ගමන් කරන විට ප්රතිදානය ආදානය බවට පත්වේ.
$ (stty -echo; read passwd; stty echo; echo $passwd; tar -cz foo.*) | ssh
remote_host "sudo -S bash -c \"tar -C /var/www/ -xz; echo\""
[sudo] password for bruce:
[1]+ Stopped ( stty -echo; read passwd; stty echo; echo
$passwd; tar -cz foo.* ) | ssh remote_host "sudo -S bash -c \"tar -C
/var/www/ -xz; echo\""
$ pstree -lap $$
bash,7168
├─bash,7969
├─pstree,7972 -lap 7168
└─ssh,7970 remote_host sudo -S bash -c "tar -C /var/www/ -xz; echo"`
අපගේ අන්තර්ක්රියාකාරී කවචය PID 7168 වේ, අපගේ උප කුලකය PID 7969 වන අතර අපගේ ssh ක්රියාවලිය PID 7970 වේ.
එකම අඩුපාඩුව නම්, සූඩෝගේ විමසුම ආපසු යැවීමට කාලය ලැබීමට පෙර කියවීම ආදානය භාර ගැනීමයි. වේගවත් සම්බන්ධතාවයකින් සහ වේගවත් දුරස්ථ ධාරකයකදී ඔබ මෙය නොදකින නමුත් මන්දගාමී නම් ඔබට එය කළ හැකිය. ඕනෑම ප්රමාදයක් විමසුමට ඇතුළු වීමේ හැකියාව කෙරෙහි බලපාන්නේ නැත; ඔබ ටයිප් කිරීමට පටන් ගත් පසු එය දිස්වනු ඇත.
සටහන මම නිරූපණය සඳහා මගේ දේශීය යන්ත්රයට "remote_Host" සඳහා ධාරක ගොනු ඇතුළත් කිරීමක් එක් කළෙමි.