சரி: stdin ஒரு முனையம் அல்ல என்பதால் போலி முனையம் ஒதுக்கப்படாது



சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்

பெரும்பாலான சந்தர்ப்பங்களில், நீங்கள் ஒரு ஸ்கிரிப்ட்டில் இருந்து ஒருவித SSH கட்டளையை இயக்கும்போது மட்டுமே குழப்பமான “போலி முனையம் ஒதுக்கப்படாது, ஏனெனில் stdin ஒரு முனையம் அல்ல” பிழை. கட்டளை வரியிலிருந்து அதே கட்டளையை நீங்கள் இயக்குகிறீர்கள் என்றால், அது நன்றாக வேலை செய்யும்.



மேலும் செல்வதற்கு முன், உங்கள் பொது விசையை SSH முகவரிடம் சேர்த்துள்ளீர்கள் என்பதை உறுதிசெய்து, பின்னர் மீண்டும் ssh ஐப் பயன்படுத்த முயற்சிக்கவும். நீங்கள் ஒரு சாவியைக் காணவில்லை. மறுபுறம், இது வேலை செய்யவில்லை என்றால், உங்கள் ஸ்கிரிப்ட்டில் கொஞ்சம் சிக்கல் தீர்க்க வேண்டும்.



முறை 1: போலி-டிடி ஒதுக்கீட்டை கட்டாயப்படுத்துதல் மற்றும் முடக்குதல்

உங்களுக்காக சிக்கலை விரைவாக சரிசெய்யக்கூடிய ஒரு ஜோடி கட்டளை வரி விருப்பங்கள் உள்ளன. போலி முனைய ஒதுக்கீட்டை கட்டாயப்படுத்த நீங்கள் இணைக்க முயற்சித்த மீதமுள்ளவற்றைத் தொடர்ந்து ssh -t -t -R ஐ முயற்சிக்கவும். உதாரணமாக, example.com இல் உங்கள் கணக்கில் உள்நுழைய நீங்கள் ssh -p 80 appuals@ssh.example.com ஐப் பயன்படுத்தப் போகிறீர்கள் என்று சொல்லலாம், நிச்சயமாக இல்லாத ஆவணங்களுக்கான போலி இது.



எ.கா. இயக்க முயற்சிக்கவும். ssh -t -t -R -p 80 appuals@ssh.example.com மற்றும் இது சிக்கலை சரிசெய்கிறதா என்று பாருங்கள். கணினியில் வெற்றிகரமாக உள்நுழைய நீங்கள் பெயரை உங்கள் உண்மையான கணக்கு மற்றும் ஹோஸ்ட்பெயருடன் மாற்ற வேண்டும். இது ஒரு முனையத்தின் ஒதுக்கீட்டை கட்டாயப்படுத்துகிறது, எனவே போலி முனையம் ஒதுக்கப்படாது என்பதை நீங்கள் பார்க்கக்கூடாது, ஏனெனில் stdin ஒரு முனைய பிழை அல்ல.

மறுபுறம், நீங்கள் நிலையான பிழை செய்திகளுடன் முடிவடையும். சில பயனர்கள் இது வேடிக்கையானது என்று கருதலாம் என்று குறிப்பிட்டுள்ளனர்.

பொருட்படுத்தாமல் இது நிச்சயமாக வெறுப்பாக இருக்கிறது, எனவே செயல்முறையை கொல்ல Ctrl + C ஐப் பயன்படுத்தவும்.



போலி முனையம்

நீங்கள் ஒரு -t சுவிட்சை மட்டுமே பயன்படுத்த முயற்சி செய்யலாம் அல்லது எண்ணை அதிகரிக்கலாம். இது வேலை செய்யவில்லை எனில், எந்த -t சுவிட்சுகளையும் கட்டளையில் -T சுவிட்சுடன் மாற்றவும், எ.கா. ssh -T -R -p 80 appuals@ssh.example.com மற்றும் அது செயல்படுகிறதா என்று பாருங்கள்.

இந்த முறை முழு போலி முனைய ஒதுக்கீடு செயல்முறையையும் முற்றிலுமாக முடக்குகிறது, எனவே அதை கட்டாயப்படுத்தாத சந்தர்ப்பங்களில் இது செயல்படக்கூடும். நிச்சயமாக, இவை எதுவுமே கட்டளை வரியிலிருந்து ஒரு சிக்கலாக இருக்கக்கூடாது, ஆனால் உங்கள் ஸ்கிரிப்டிலிருந்து எந்த விருப்பம் செயல்படுகிறது என்பதைக் கண்டறிந்தால் ஒரு குறிப்பை உறுதிப்படுத்திக் கொள்ளுங்கள், எனவே நீங்கள் சொன்ன சேவையகத்தை அணுக நீங்கள் இயக்க வேண்டிய எதிர்கால ஸ்கிரிப்ட்களில் இதைப் பயன்படுத்தலாம்.

Ssh கட்டளை இந்த இரண்டு எதிர் விருப்பங்களுக்கும் ஒத்த பெயர்களைக் கொடுத்ததால், -t அதை போலி-முனையங்களின் ஒதுக்கீட்டை கட்டாயப்படுத்துகிறது என்பதை நினைவில் கொள்ளுங்கள் -T அதை முடக்குகிறது. இந்த விருப்பங்கள் வழக்கு உணர்திறன் கொண்டவை, மேலும் அவை பெரும்பாலும் ஸ்கிரிப்டுகளின் உள்ளே இருந்து அவசியம், ஏனெனில் ssh க்கு வேலை செய்ய ஒரு பாரம்பரிய TTY முனையம் தேவைப்படுகிறது. இயற்கையாகவே, உங்கள் விஷயத்தில் இந்த நோக்கத்திற்காக உங்கள் முனைய முன்மாதிரியைப் பயன்படுத்துகிறீர்கள்.

முறை 2: sshpass ஐப் பயன்படுத்துதல்

இயல்புநிலையாக சேர்க்கப்படாத sshpass கட்டளையுடன் தங்கள் ஸ்கிரிப்ட்கள் சிறப்பாக செயல்படுவதை சிலர் காணலாம். நீங்கள் இதை முயற்சி செய்ய விரும்பினால் அல்லது உங்கள் குறிப்பிட்ட பயன்பாட்டு விஷயத்தில் உங்களுக்குத் தேவைப்பட்டால், அதை எப்போதும் சூடோ ஆப்ட்-கெட் இன்ஸ்டால் ஸ்ஷ்பாஸ் அல்லது சூடோ யம் இன்ஸ்டால் ஸ்ஷ்பாஸ் மூலம் நிறுவலாம்.

நீங்கள் ஏற்கனவே இதைப் பயன்படுத்தவில்லை என்றால், உங்களுக்கு இது தேவையில்லை. ஆயினும்கூட, இந்த வகையான சூழலில் போலி முனைய ஒதுக்கீடு தொடர்பான பிழை செய்திகளை ஆச்சரியப்படுத்த அதே நுட்பங்களைப் பயன்படுத்தலாம்.

உதாரணமாக, உங்கள் ஸ்கிரிப்ட்டின் உள்ளே இருந்து கணினியை வேலை செய்ய கட்டாயப்படுத்த sshpass -p கடவுச்சொல் ssh -T appuals@ssh.example.com ஐப் பயன்படுத்தவும்.

முறை 3: வேலை மேலாண்மை பிழைகளை சரிசெய்தல்

இவை அனைத்தையும் சரிசெய்த பிறகும் நீங்கள் வேறு ஒரு பிழை செய்தியைப் பெறலாம். Tty க்கு அணுகல் இல்லாத ஒரு எச்சரிக்கையை நீங்கள் பெறுகிறீர்கள் என்றால், உங்கள் ஷெல்லில் வேலை கட்டுப்பாடு இல்லை என்பதை நினைவூட்டினால், நீங்கள் ஓரளவு சாதாரணமாக வேலை செய்ய முடியும்.

தொலைநிலை சேவையகத்தில் csh, tcsh அல்லது Almquist அல்லது பிற ஷெல் தொடர்பான ஏதேனும் ஒழுங்கற்றதாக இருப்பதால் இந்த பிழை ஏற்படுகிறது. நீங்கள் பிற பிழை செய்திகளைப் பெறுவதால் நீங்கள் அதை கவனித்திருக்க மாட்டீர்கள், ஆனால் போலி முனையங்களைப் பற்றி மற்றவர்களை நீங்கள் காணவில்லை எனில், நீங்கள் வழக்கமாகப் போலவே தொடரவும் முடியும்.

செயல்முறைகளை நிறுத்த இந்த வழக்கில் Ctrl + Z ஐப் பயன்படுத்த முயற்சிக்க நீங்கள் விரும்ப மாட்டீர்கள், ஏனென்றால் அவற்றை மீண்டும் மீண்டும் தொடங்குவதற்கு வழி இல்லை. நீங்கள் வெளியேறும்போது நிறுத்தப்பட்ட வேலைகள் உள்ளன என்று படிக்கும் பிழை செய்தியைப் பெற்றால், நீங்கள் வெளியேற அனுமதிக்கப்பட மாட்டீர்கள்.

வேலைகள் நிறுத்தப்பட்டன

இந்த வேலையில் வேலையை இழக்க நீங்கள் விரும்பவில்லை என்று கருதி, நீங்கள் மூட முடியாத எந்த வேலைகளையும் மூட ps மற்றும் கட்டளைகளைக் கொல்லவும். நீங்கள் இப்போது வெளியேற முடியும்.

குறிச்சொற்கள் லினக்ஸ் எப்படி ssh 3 நிமிடங்கள் படித்தேன்