ලාභ:
- පැහැදිලි සීමාවන් සහ කෘතිම බුද්ධිය සහිත ආරක්ෂක වැටවල් සහිත Bash, PowerShell සහ Python ස්වයංක්රීයකරණ ස්ක්රිප්ට් නිෂ්පාදනය කිරීමේ හැකියාව
- එක් එක් ස්ක්රිප්ට් සඳහා idempotency, dry-run, Error හැසිරවීම සහ ආපසු හැරීම වැනි මූලධර්ම එක් කිරීමට සහ 'ජනනය, දැඩි කිරීම, සත්යාපනය' චක්රය යෙදීමේ හැකියාව
- නිෂ්පාදනය කරන ලද ස්ක්රිප්ට් ක්රියාත්මක කිරීමෙන් එය ආරක්ෂිත බව අදහස් නොවන බව තේරුම් ගැනීමට ඇති හැකියාව සහ විනාශකාරී රේඛා කියවීමෙන් සහ පරීක්ෂා කිරීමෙන් වගකීම භාර ගැනීමේ පුරුද්දක් ඇති කර ගැනීම.
ස්වයංක්රීය ස්ක්රිප්ට්: AI සමඟ ආරක්ෂිතව Bash, PowerShell සහ Python ජනනය කිරීම
පද්ධති පරිපාලකගේ නරකම සතුරා වන්නේ පුනරාවර්තන අතින් වැඩ කිරීමයි: එක් එක් යන්ත්රයට සම්බන්ධ කිරීම සහ ලඝු-සටහන් පිරිසිදු කිරීම, සේවාදායකයන් විස්සකට එකම පරිශීලකයා විවෘත කිරීම, සෑම උදෑසනකම එකම සෞඛ්ය පරීක්ෂාව ක්රියාත්මක කිරීම. මෙම පුනරාවර්තනය කාලය සහ මානව දෝෂ යන දෙකටම විවෘතය. ස්වයංක්රීය ස්ක්රිප්ට් යනු මෙම පුනරාවර්තන පරිගණකය වෙත පැවරෙන කුඩා වැඩසටහනකි - බොහෝ විට ලිනක්ස් ලෝකයේ Bash (shell command language), Windows ලෝකයේ PowerShell (Microsoft හි ස්වයංක්රීය කවචය) සහ වේදිකාව මත ස්වාධීන වැඩ සඳහා Python වලින් ලියා ඇත. AI මෙම ස්ක්රිප්ට් වල පළමු කෙටුම්පත නිෂ්පාදනය කිරීමට, පැහැදිලි කිරීමට සහ වැඩිදියුණු කිරීමට ඇදහිය නොහැකි තරම් වේගවත්ය. නමුත් ස්ක්රිප්ට් එක පෙළක් නොවේ, එය ඔබගේ පද්ධතියේ ක්රියාත්මක වන බලයකි; එක්සෙල් සූත්රයක් මෙන් නොව, එය වැරදි නම්, එය ගොනුව මකා දමයි, සේවාව නවත්වයි, සහ ප්රවේශය කපා දමයි. මෙම ඒකකයේ පොරොන්දුව වන්නේ එබැවිනි: AI ස්ක්රිප්ට් එක ලියනවා, ඔබ එය කියවනවා, එය පරීක්ෂා කරන්න සහ වගකීම භාර ගනිමින් ක්රියාත්මක කරන්න.
මෙම ඒකකය තුළ, ඔබ AI සමඟ ආරක්ෂිත, කියවිය හැකි සහ ආපසු ලබාගත හැකි ස්ක්රිප්ට් නිෂ්පාදනය කරන්නේ කෙසේදැයි ඉගෙන ගනු ඇත; idempotency (එකම පිටපත දෙවරක් ධාවනය කිරීමෙන් හානියක් සිදු නොවේ) සහ වියළි ධාවනය වැනි ජීවිතාරක්ෂක මූලධර්ම; තිර රචනයක් නිෂ්පාදනය කිරීමට පෙර එය කළ යුතු චෙක්පත් ඔබ ඉගෙන ගනු ඇත.
AI සමඟ ස්ක්රිප්ට් කිරීම එතරම් ප්රබල වන්නේ ඇයි?
පළපුරුදු පරිපාලකයෙකු පවා Bash loop එකක, PowerShell cmdlet (command) එකක පරාමිතීන් හෝ Python උත්සාහයක/හෘදයෙන් අවහිර කිරීමක නියම වාක්ය ඛණ්ඩය නොදැන සිටිය හැක. AI මෙම පරතරය ක්ෂණිකව පුරවයි: ඔබ සරල තුර්කි භාෂාවෙන් අභිප්රාය පැහැදිලි කරන අතර එය ක්රියාකාරී දළ සටහනක් නිපදවයි. එපමණක් නොව, ඔබට දැනට පවතින ස්ක්රිප්ට් එකක් AI වෙත ලබා දී "මෙය පැහැදිලි කරන්න", "දෝෂ හැසිරවීම එක් කරන්න", "එය වඩාත් කියවිය හැකි කරන්න" යනුවෙන් පැවසිය හැක. මෙය ඉගෙනීමේ වක්රය කෙටි කරන අතර කනිෂ්ඨ කණ්ඩායම් සාමාජිකයින් වේගවත් කරයි.
නමුත් බලය සමඟ වගකීම ද පැමිණේ. බොහෝ විට, AI-ජනනය කරන ලද ස්ක්රිප්ට් එකක් "ප්රීතිමත් මාර්ගය" නිවැරදිව ලියයි (සියල්ල හොඳින් නම්); නමුත් එයට එජ් කේස් මග හැරිය හැක (ගොනුව අස්ථානගත වීම, තැටිය පිරී තිබීම, ජාලය ක්රියා විරහිත වීම) හෝ අනතුරුදායක උපකල්පන ඇති කළ හැක. එබැවින් අදියර තුනකින් AI සමඟ ස්ක්රිප්ට් උත්පාදනය ගැන සිතන්න: උත්පාදනය, දැඩි කිරීම, සත්යාපනය.
පියවරෙන් පියවර: ආරක්ෂිත ස්ක්රිප්ට් උත්පාදනය
- අභිප්රාය සහ බාධාව පැහැදිලිව ලියන්න. කුමන මෙහෙයුම් පද්ධතිය, කුමන ෂෙල් අනුවාදය, කුමන ගොනු මාර්ග, කුමන අයිතිවාසිකම්ද? "Ubuntu 22.04, Bash 5, sudo not root, only run under /opt/app/logs" වගේ. නොපැහැදිලි ඉල්ලුම භයානක උපකල්පනයක් ඇති කරයි.
- ආරක්ෂිත වැටවල් ඉල්ලා සිටින්න. ස්ක්රිප්ට් එක "අසාර්ථක වීම මත නවත්වන්න" (Bash හි -euo pipefail සකසන්න) අවශ්ය කරන්න, විනාශකාරී මෙහෙයුම් තහවුරු කිරීම, ක්රියාත්මක වීමට පෙර උපස්ථ කිරීම සහ වියළි ධාවන මාදිලිය සඳහා විමසන්න. මෙම ආරක්ෂක වැටවල් AI මඟහරින බව ප්රකාශ කරයි.
- දුර්වල ලෙස ලියන්න. ස්ක්රිප්ට් එක දෙවන වරටත් ක්රියාත්මක වන විට කිසිදු දෝෂයක් හෝ හානියක් සිදු නොකළ යුතුය. "පරිශීලකයා දැනටමත් සිටී නම් මඟ හරින්න", "නොපවතියි නම් ඩිරෙක්ටරිය සාදන්න, එය තිබේ නම් එය ස්පර්ශ නොකරන්න" යන තර්කයක් ස්ථාපිත කරන්න. මෙය ස්වයංක්රීයකරණය නැවත නැවතත් ආරක්ෂිතව ක්රියාත්මක වීමට ඉඩ සලසයි.
- කියවා තේරුම් ගන්න. නිපදවන සෑම පේළියක්ම කියවන්න. විනාශකාරී විධාන (rm, Remove-Item, DROP) වෙන වෙනම සලකුණු කිරීමට AI ගෙන් විමසන්න.
- වියළි ධාවනය සමඟ පරීක්ෂා කරන්න. පළමුව, එය සැබෑ මෙහෙයුම් වෙනුවට "කළ යුතු දේ පැවසීම" ආකාරයෙන් ධාවනය කරන්න. ප්රතිදානය ඔබ අපේක්ෂා කරන දෙය නම්, සැබෑ මාදිලියට මාරු වන්න — සහ පළමුව පරීක්ෂණ යන්ත්රය මත.
- ඔබේ නැවත පැමිණීම සූදානම් කරන්න. පිටපත උපස්ථ ගන්නවාද? උපස්ථය ප්රතිසාධනය කරන්නේ කෙසේදැයි ඔබ දන්නවාද? ලොග් වෙනවද ඒක පස්සෙ කරන දේ බලන්න පුලුවන්ද?
ඉඟිය: සෑම විනාශකාරී ස්ක්රිප්ට් එකකම DRY_RUN=සැබෑ විචල්යයක් සහ --apply ධජයක් ඇතුළත් කරන්න. පෙරනිමි හැසිරීම යනු කිසිවක් මකා දැමීමකින් තොරව සිදු වන දේ ලිවීමයි; --apply පැහැදිලිව ලබා දී ඇත්නම් පමණක් සැබෑ මකාදැමීමට ඉඩ දෙන්න. මෙම එක් පුරුද්දක් වෘත්තීය දිගු විපත් වළක්වයි.
කුඩා නඩු තුනක්
නඩුව 1 - Idempotency පැය 3ක් ඉතිරි කර ඇත. පරිපාලකයෙක් සර්වර් 25 ක එකම අධීක්ෂණ නියෝජිතයා ස්ථාපනය කරන ලද ස්ක්රිප්ට් එකක් ලිවීය. පළමු අනුවාදය දුර්වල නොවීය: නියෝජිතයා දැනටමත් ස්ථාපනය කර ඇත්නම් එය දෙවන ධාවනයේදී වින්යාසය බිඳ දැමීය. ඉංජිනේරුවරයාට AI එක "එය ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්න, එය තිබේ නම් එය මඟ හරින්න" යන තර්කය එකතු කරන ලදී. මීළඟ නඩත්තු කවුළුව තුළදී ස්ක්රිප්ටය අහම්බෙන් දෙවරක් ක්රියා විරහිත වූ නමුත් එයින් හානියක් නොවීය. Idempotency 25-සේවාදායක ප්රතිසාධනයක් අනවශ්ය කළේය.
නඩුව 2 - වියළි ධාවනය මූල නාමාවලියක් සුරකින ලදී. එක් කණ්ඩායමකට පැරණි උපස්ථ ඉවත් කළ Bash පිටපතක් ලැබිණි. විචල්යය හිස් නම්, මාර්ගය / වෙනුවට / උපස්ථ/ — සම්භාව්ය අනතුරක් බවට පත් විය. ඉන්ජිනේරුවා ප්රථමයෙන් එය DRY_RUN මාදිලියේ ධාවනය කර, ප්රතිදානයේ rm -rf / ට සමාන රේඛාවක් දුටු විට නිශ්චල වී, විචල්ය චෙක්පතක් එක් කළේය (: "${BACKUP_DIR:?හිස් විය නොහැක}"). Dry Running දෝෂයකට හසු වූ අතර එය නිෂ්පාදනයට යාමට පෙර මුළු තැටියම පිස දමනු ඇත.
3 වන අවස්ථාව - දෝෂ කළමනාකරණය එය එක් රාත්රියක අවදි වීම වැළැක්වීය. තැටිය පිරී ඇති විට PowerShell ස්ක්රිප්ට් එකක් ලඝු-සටහන් සංරක්ෂණය කරමින් සිටියේය. ජාල බෙදාගැනීම ප්රවේශ විය නොහැකි නම් සහ තැටිය පිරවීම දිගටම කරගෙන ගියහොත් පළමු අනුවාදය නිශ්ශබ්දව අසාර්ථක වනු ඇත. "සෑම පියවරකදීම සාර්ථකත්වය තහවුරු කරන්න, අසාර්ථක නම්, විද්යුත් තැපෑලට දැනුම් දී නවත්වන්න" AI වෙත එක් කරන ලදී. සතියකට පසු, කණුව කැඩී ගියේය; ස්ක්රිප්ට් එක නැවතිලා අවවාද කළා, තැටිය පිරුණේ නැහැ, පාන්දර 3ට කවුරුත් ඇහැරුනේ නැහැ.
පිටපත් කළ හැකි සැකිලි හතරක්
1) ආරක්ෂිත Bash ස්ක්රිප්ට් උත්පාදනය:
ඔබේ කාර්යභාරය: ජ්යෙෂ්ඨ ලිනක්ස් ස්වයංක්රීය ඉංජිනේරු. Ubuntu 22.04 / Bash 5 සඳහා පිටපතක් ලියන්න. අරමුණ:[අරමුණ]. රීති:- "set -euo pipefail" සමඟ ආරම්භ කරන්න.- ": ${VAR:?}" සමඟ අවශ්ය විචල්ය වලංගු කරන්න.- පෙරනිමියෙන් විනාශකාරී මෙහෙයුම් සිදු කරන්න DRY_RUN=true; සැබෑ යෙදුම --apply ධජය සමඟ පමණක් ධාවනය වීමට ඉඩ දෙන්න. - සෑම පියවරක්ම stdout වෙත ලොග් කරන්න, දෝෂයක් මත අර්ථවත් පණිවිඩයක් සමඟ නවත්වන්න. - එය idempotent කරන්න (එය දෙවන ධාවනයේදී හානියක් නොවන පරිදි). ඉන්පසුව: විනාශ විය හැකි රේඛා වෙන වෙනම සලකුණු කර නිෂ්පාදනයට පෙර මට පරීක්ෂා කිරීමට අවශ්ය අවස්ථා 3ක් ලියන්න.
2) පවතින ස්ක්රිප්ට් දැඩි කිරීම:
පහත ස්ක්රිප්ට් එක නිෂ්පාදනය සඳහා සූදානම් කරන්න: (1) දෝෂ හැසිරවීම සහ ලොග් කිරීම එක් කරන්න, (2) එය idempotent කරන්න, (3) වියළි ධාවනය පිටුපස විනාශකාරී විධාන යොදන්න, (4) විචල්යයට දෘඪ-කේතගත මාර්ග සහ රහස් උපුටා ගන්න. ඔබ වෙනස් කළ එක් එක් පේළිය සහ ඇයි යන්න කෙටියෙන් විස්තර කරන්න. ස්ක්රිප්ට්: [ස්ක්රිප්ට්]
3) PowerShell ආරක්ෂිත ස්වයංක්රීයකරණය:
ඔබේ කාර්යභාරය: වින්ඩෝස් ස්වයංක්රීයකරණ විශේෂඥයා. PowerShell 5.1 අනුකූල ස්ක්රිප්ට් එකක් ලියන්න. අරමුණ: [අරමුණ]. රීති:- "$ErrorActionPreference = 'Stop'" සමඟින් ආරම්භ කරන්න.- Destructor cmdlets වෙත -WhatIf සහය එක් කරන්න (පෙරනිමිය WhatIf).- සෑම ක්රියාවක්ම උත්සාහ/අල්ලා ගැනීම, ලොග් දෝෂය සමඟ ඔතා.- අක්තපත්ර දෘඪ කේතකරණය; පරාමිතිය හෝ ආරක්ෂිත ආදානය භාවිතා කරන්න. විනාශකාරී රේඛා සලකුණු කර ඉවත් කිරීමේ පියවර ලියන්න.
4) ක්රොන්/කාලසටහන් ප්රකාශන විකේතනය සහ සත්යාපනය:
පහත දැක්වෙන ක්රෝන් ප්රකාශය සරල තුර්කි භාෂාවෙන් පැහැදිලි කර ඊළඟ ධාවන කාල 3 ලියන්න: [ප්රකාශනය] තවද, මගේ ඉලක්කය "[අරමුණ]" නම්, මෙම ප්රකාශය නිවැරදිද නැතහොත් ඔබ යෝජනා කරන නිවැරදි කිරීමක් තිබේද? කාල සීමාවේ බලපෑම ද සටහන් කරන්න.
දුර්වල ක්ෂණික / ශක්තිමත් විමසුම
දුර්වල ක්ෂණික:
ලොගය පිරිසිදු කරන ස්ක්රිප්ට් එකක් මට ලියන්න.
මෙම විමසුම භයානක ය: කුමන මෙහෙයුම් පද්ධතියද, කුමන නාමාවලියද, කුමන වයස් සීමාවද, කුමන ආරක්ෂක වැටක්ද යන්න පැහැදිලි නැත. AI හට එක්-ලයිනර්, විනාශකාරී සහ සත්යාපනය කළ නොහැකි rm ලබා දිය හැක.
බලවත් විමසුම:
ඔබේ කාර්යභාරය: ජ්යෙෂ්ඨ ලිනක්ස් ස්වයංක්රීය ඉංජිනේරු. Ubuntu 22.04 / Bash සඳහා ලොග් පිරිසිදු කිරීමේ පිටපතක් ලියන්න. දින 30කට වඩා පැරණි /opt/app/logs යටතේ ඇති .log ගොනු පමණක් මකන්න. රීති: set -euo pipefail; BACKUP_DIR සහ LOG_DIR විචල්ය වලංගු කරන්න (හිස් නම් නවත්වන්න); මකා දැමීමට පෙර ගොනු ලැයිස්තුව ලොග් කරන්න; DRY_RUN=සත්ය පෙරනිමිය වීමට ඉඩ දෙන්න, සත්ය මකාදැමීම --apply සමඟ පමණි; එය දුර්වල වීමට ඉඩ දෙන්න. විනාශකාරී රේඛා සලකුණු කර මා පරීක්ෂා කළ යුතු අවස්ථා 3ක් ලියන්න.
ලක්ෂණය
දුර්වල/වේගවත් පිටපත
දැඩි වූ පිටපත
දෝෂ හැසිරවීම
නැහැ, නිහඬ අසාර්ථකයි
set -euo pipefail, උත්සාහ කරන්න/අල්ලා ගන්න
විනාශකාරී ක්රියාව
සෘජුවම ක්රියා කරයි
වියළි ධාවනය + විවෘත චෙක් ධජය
නැවත ආරම්භ කරන්න
හානියක් විය හැක
නිර්භීත, ආරක්ෂිත
රහස් කළමනාකරණය
අමාරුවෙන් කේතනය කර ඇත
විචල්ය/සැඟවුණු ආදානය
අහෝසි කරන්න
කිසිවක් නැත
උපස්ථ + ප්රතිසාධන පියවර
පොදු වැරදි
- වියළි ධාවනයකින් තොරව විනාශකාරී ස්ක්රිප්ට් ධාවනය කිරීම. rm, Remove-Item, DROP අඩංගු ස්ක්රිප්ට් එක වියළි ප්රකාරයේ පිරිවැය තැටියේ පළමුවෙන් නොපෙනේ.
- ශුන්ය විචල්ය පරීක්ෂාව මඟ හරින්න. හිස් මාර්ග විචල්යයක් මඟින් / වෙනුවට / උපස්ථ/; : "${VAR:?}" සමඟ සත්යාපනය කිරීමට වග බලා ගන්න.
- Idempotency අමතක වීම. ස්වයංක්රීයකරණය විශ්වාස කළ නොහැකි කරමින් දෙවරක් ධාවනය කරන විට ස්ක්රිප්ට් කැඩී යයි.
- දෘඪ-කේතීකරණ රහස්. ඔබ එම ස්ක්රිප්ට් එක බෙදා ගන්නා විට ස්ක්රිප්ටයට මුරපදය සහ යතුර ලිවීම කාන්දු වීමකි.
- නිෂ්පාදනයේදී පරීක්ෂා කිරීම. නිෂ්පාදනයේ පළමු ධාවනය කිරීම යනු වේදිකාවේ පෙරහුරු කිරීමයි; මුලින්ම පරීක්ෂණ යන්ත්රය.
අවධානය: "එය ක්රියා කළා, එයින් අදහස් වන්නේ එය නිවැරදි" නිසා පමණක් AI විසින් ලබා දෙන පිටපතක් පිළිගන්න එපා. එය ක්රියාත්මක වූ පමණින් එය විනාශකාරී නොවන බව අදහස් නොවේ. ස්ක්රිප්ට් එකකට ප්රීතිමත් මාවතේ ධාවනය කළ හැකි අතර දාර තත්ත්වයෙන් දත්ත මකා දැමිය හැක; සැබෑ පරීක්ෂණය වන්නේ එජ් කේස් ය.
සාරාංශයකින්
ස්වයංක්රීය ස්ක්රිප්ට් පුනරාවර්තනය ඉවත් කර මිනිස් දෝෂ අඩු කරයි; AI මෙම ස්ක්රිප්ට් ජනනය කිරීමට, පැහැදිලි කිරීමට සහ දැඩි කිරීමට ඇදහිය නොහැකි තරම් වේගවත්ය. නමුත් ස්ක්රිප්ට් යනු ක්රියාකාරී බලවේගයකි: එය වැරදියි නම්, එය මකා දමයි, නතර කරයි, බාධා කරයි. එබැවින් "නිෂ්පාදනය, දැඩි කිරීම, සත්යාපනය" චක්රය ස්ථාපිත කරන්න. සෑම විනාශකාරී ස්ක්රිප්ට් එකකම දෝෂ හැසිරවීම, දුර්වලතාවය, වියළි ධාවනය සහ පසුබැසීම ඇතුළත් කරන්න. විචල්යයට රහස් උපුටා ගන්න, පරීක්ෂණ යන්ත්රයේ පළමු ධාවනය කරන්න. AI පිටපත ලියයි; එය කියවීම, පරීක්ෂා කිරීම සහ එය පවත්වාගෙන යාමේ වගකීම භාර ගැනීම ඔබේ කාර්යයයි.
යෙදුම් කාර්යය
ඔබේ රැකියාවේදී ඔබ අතින් පුනරාවර්තනය වන කාර්යයක් තෝරන්න (උදා: ලොග් පිරිසිදු කිරීම, පරිශීලක විවෘත කිරීම, සෞඛ්ය පරීක්ෂාව). ඉහත “Secure Bash script” හෝ “PowerShell ආරක්ෂිත ස්වයංක්රීයකරණය” අච්චුව සමඟින් AI වෙතින් දළ සටහනක් ඉල්ලන්න. ජනනය කරන ලද ස්ක්රිප්ට් පේළිය පේළියෙන් කියවා විනාශකාරී රේඛා සලකුණු කරන්න. පරීක්ෂණ යන්ත්රයක ප්රථමයෙන් එය වියළි ධාවන ආකාරයෙන් ධාවනය කරන්න, ඔබේ අපේක්ෂාව සමඟ ප්රතිදානය සසඳන්න. ඉන්පසු ස්ක්රිප්ට් එක නැවත AI වෙත ලබා දී එය "දෘඩ" අච්චුවෙන් පිරිපහදු කර අනුවාද දෙක අතර ඇති වෙනස්කම් 5 සටහන් කරන්න.
පිරික්සුම් ලැයිස්තුව
- [ ] මම OS, shell අනුවාදය, මාර්ග සහ හිමිකම් වැනි සීමා කිරීම් විමසුමට ඇතුළත් කර තිබේද?
- [ ] ස්ක්රිප්ට් එක -euo pipefail / $ErrorActionPreference='Stop' සමඟින් දෝෂ ඉවසන්නේද?
- [ ] වියලි ධාවනය/-WhatIf පිටුපස විනාශකාරී මෙහෙයුම් සහ පැහැදිලි පිරික්සුම් ධජයක් අවශ්යද?
- [ ] ස්ක්රිප්ට් එක දුර්වලද (දෙවන ධාවනයේදී ආරක්ෂිතද)?
- [ ] මම ඒවා දැඩි කේතනය කරනවා වෙනුවට විචල්ය/රහස් ආදානය වෙත රහස් උපුටාගෙන තිබේද?
- [ ] මම පරීක්ෂණ යන්ත්රයේ පළමු ධාවනය කර ආපසු පැමිණීමේ සැලැස්මක් සකස් කර තිබේද?