safecat - ക്ലൗഡിൽ ഓൺലൈനിൽ

Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്‌സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് സേഫ്‌ക്യാറ്റാണിത്.

പട്ടിക:

NAME


safecat - ഒരു ഫയലിലേക്ക് സുരക്ഷിതമായി ഡാറ്റ എഴുതുക

സിനോപ്സിസ്


സേഫ്കാറ്റ് tempdir destdir

ആമുഖം


സേഫ്കാറ്റ് പ്രൊഫസർ ഡാനിയൽ ബേൺസ്റ്റൈൻ നടപ്പിലാക്കുന്ന ഒരു പ്രോഗ്രാമാണ് മെയിൽഡിർ ലേക്കുള്ള അൽഗോരിതം
പകർത്തുക stdin ഒരു നിർദ്ദിഷ്ട ഡയറക്ടറിയിലെ ഒരു ഫയലിലേക്ക് സുരക്ഷിതമായി. കൂടെ സേഫ്കാറ്റ്, ഉപയോക്താവ് വാഗ്ദാനം ചെയ്യുന്നു
രണ്ട് ഉറപ്പുകൾ. ആദ്യം, എങ്കിൽ സേഫ്കാറ്റ് വിജയകരമായ എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകുന്നു, തുടർന്ന് എല്ലാ ഡാറ്റയും
ഡെസ്റ്റിനേഷൻ ഡയറക്‌ടറിയിൽ സംരക്ഷിക്കപ്പെടുമെന്ന് ഉറപ്പ്. രണ്ടാമതായി, ഒരു ഫയൽ നിലവിലുണ്ടെങ്കിൽ
ലക്ഷ്യസ്ഥാന ഡയറക്ടറി, അവിടെ സ്ഥാപിച്ചിരിക്കുന്നു സേഫ്കാറ്റ്, അപ്പോൾ ഫയൽ ഉറപ്പുനൽകുന്നു
പൂർത്തിയായി.

ഉപയോഗിച്ച് ഡാറ്റ സേവ് ചെയ്യുമ്പോൾ സേഫ്കാറ്റ്, ഉപയോക്താവ് ഒരു ലക്ഷ്യസ്ഥാന ഡയറക്ടറി വ്യക്തമാക്കുന്നു, പക്ഷേ ഒരു ഫയലല്ല
പേര്. ഫയലിന്റെ പേര് തിരഞ്ഞെടുത്തത് സേഫ്കാറ്റ് ഫയലിന്റെ പേരിലുള്ള കൂട്ടിയിടികളൊന്നും സംഭവിക്കുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ,
പലതാണെങ്കിലും സേഫ്കാറ്റ് നടപ്പിലാക്കുന്ന പ്രക്രിയകളും മറ്റ് പ്രോഗ്രാമുകളും മെയിൽഡിർ അൽഗോരിതം ആകുന്നു
ഒരേസമയം ഡയറക്ടറിയിലേക്ക് എഴുതുന്നു. പ്രത്യേക ഫയൽനാമങ്ങൾ വേണമെങ്കിൽ, പിന്നെ
ഉപയോക്താവിന് ശേഷം ഫയലിന്റെ പേര് മാറ്റണം സേഫ്കാറ്റ് പൂർത്തിയാക്കുന്നു. പൊതുവേ, ഡാറ്റ സ്പൂൾ ചെയ്യുമ്പോൾ
സേഫ്കാറ്റ്, ഇവയ്ക്ക് പേരിടൽ, ശേഖരിക്കൽ, ഇല്ലാതാക്കൽ എന്നിവ കൈകാര്യം ചെയ്യേണ്ടത് ഒരൊറ്റ, പ്രത്യേക പ്രക്രിയയാണ്
ഫയലുകൾ. ഡെമണുകൾ, ക്രോൺ ജോലികൾ, മെയിൽ റീഡറുകൾ എന്നിവയാണ് അത്തരം ഒരു പ്രക്രിയയുടെ ഉദാഹരണങ്ങൾ.

വിശ്വാസ്യത ISSUES


ഡിസ്കിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ ഒരു മെഷീൻ തകരാറിലായേക്കാം. ഉൾപ്പെടെ നിരവധി പ്രോഗ്രാമുകൾക്കായി
പല മെയിൽ ഡെലിവറി ഏജന്റുമാരും, ഡാറ്റ നിശബ്ദമായി വെട്ടിച്ചുരുക്കപ്പെടും എന്നാണ് ഇതിനർത്ഥം. ഉപയോഗിക്കുന്നത്
പ്രൊഫസർ ബേൺസ്റ്റീന്റെ മെയിൽഡിർ അൽഗോരിതം, എല്ലാ ഫയലുകളും പൂർണ്ണമായോ ഇല്ലെന്നോ ഉറപ്പുനൽകുന്നു.

നിരവധി ആളുകളോ പ്രോഗ്രാമുകളോ ഒരു സാധാരണ "സ്പൂൾ" ഡയറക്ടറിയിലേക്ക് ഡാറ്റ എഴുതിയേക്കാം. പോലുള്ള സംവിധാനങ്ങൾ mh-
മെയിൽ ഒരു ഡയറക്ടറിയിൽ സംഖ്യാ നാമങ്ങൾ ഉപയോഗിച്ച് ഫയലുകൾ സംഭരിക്കുക. ഫയലുകളിലേക്ക് അശ്രദ്ധമായി എഴുതാം
ഒരു കൂട്ടിയിടിയിൽ കലാശിക്കുന്നു, അതിൽ ഒരു എഴുത്ത് വിജയിക്കുകയും മറ്റൊന്ന് വിജയിക്കുന്നതായി തോന്നുകയും ചെയ്യുന്നു
പരാജയപ്പെടുന്നു. ഈ പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള പൊതുവായ തന്ത്രങ്ങളിൽ ലോക്ക് ഫയലുകളോ മറ്റോ സൃഷ്ടിക്കൽ ഉൾപ്പെടുന്നു
സമന്വയിപ്പിക്കൽ സംവിധാനങ്ങൾ, എന്നാൽ അത്തരം സംവിധാനങ്ങൾ പരാജയത്തിന് വിധേയമാണ്. ഉള്ള ആർക്കും
നെറ്റ്‌സ്‌കേപ്പ് ആരംഭിക്കുന്നതിന് $HOME/.netscape/lock ഇല്ലാതാക്കി ഇത് സാക്ഷ്യപ്പെടുത്താൻ കഴിയും. ദി മെയിൽഡിർ
അൽഗോരിതം ഈ പ്രശ്‌നത്തിൽ നിന്ന് മുക്തമാണ്, കാരണം അത് ലോക്കുകളൊന്നും ഉപയോഗിക്കുന്നില്ല.

ദി മെയിൽഡിർ അൽഗോരിതം


ൽ വിവരിച്ചതുപോലെ മെയിൽഡിർ(5), സേഫ്കാറ്റ് ബാധകമാണ് മെയിൽഡിർ ആറിൽ ഡാറ്റ എഴുതി അൽഗോരിതം
പടികൾ. ആദ്യം, അത് സ്ഥിതി()കൾ രണ്ട് ഡയറക്ടറികൾ tempdir ഒപ്പം destdir, രണ്ടും ഒഴികെ പുറത്തുകടക്കുന്നു
ഡയറക്‌ടറികൾ നിലവിലുണ്ട്, എഴുതാവുന്നവയുമാണ്. രണ്ടാമത്, അത് സ്ഥിതി()കൾ പേര് tempdir/time.pid.host,
എവിടെ കാലം 1970 GMT യുടെ തുടക്കം മുതലുള്ള സെക്കന്റുകളുടെ എണ്ണമാണ്, PID പ്രോഗ്രാമിന്റെ ആണ്
പ്രോസസ്സ് ഐഡി, ഒപ്പം ഹോസ്റ്റ് ആണ് ഹോസ്റ്റിന്റെ പേര്. മൂന്നാമത്, എങ്കിൽ stat () അല്ലാതെ മറ്റെന്തെങ്കിലും തിരികെ നൽകി
ENOENT, പ്രോഗ്രാം രണ്ട് സെക്കൻഡ് ഉറങ്ങുന്നു, അപ്‌ഡേറ്റുകൾ കാലം, ഒപ്പം ശ്രമിക്കുന്നു stat () വീണ്ടും, എ
പരിമിതമായ എണ്ണം തവണ. നാലാമതായി, പ്രോഗ്രാം സൃഷ്ടിക്കുന്നു tempdir/time.pid.host. അഞ്ചാമത്, ദി
പ്രോഗ്രാം NFS-എഴുതുന്നു ഫയലിലേക്കുള്ള സന്ദേശം. ആറാമത്, പ്രോഗ്രാം ലിങ്ക്()എന്നതിലേക്കുള്ള ഫയൽ
destdir/time.pid.host. ആ നിമിഷം ഡാറ്റ വിജയകരമായി എഴുതപ്പെട്ടു.

ഇതുകൂടാതെ, സേഫ്കാറ്റ് സൃഷ്ടിക്കുന്നതിന് മുമ്പ് 24 മണിക്കൂർ ടൈമർ ആരംഭിക്കുന്നു tempdir/time.pid.host, ഒപ്പം
ടൈമർ കാലഹരണപ്പെടുകയാണെങ്കിൽ എഴുത്ത് നിർത്തലാക്കുന്നു. പിശക്, കാലഹരണപ്പെടൽ അല്ലെങ്കിൽ സാധാരണ പൂർത്തിയാകുമ്പോൾ, സേഫ്കാറ്റ്
ശ്രമിക്കുന്നു അൺലിങ്ക് () tempdir/time.pid.host.

പുറത്ത് പദവി


ഒരു എക്സിറ്റ് സ്റ്റാറ്റസ് 0 (വിജയം) സൂചിപ്പിക്കുന്നത് എല്ലാ ഡാറ്റയും ഡിസ്കിൽ സുരക്ഷിതമായി പ്രതിജ്ഞാബദ്ധമാക്കിയിരിക്കുന്നു എന്നാണ്. എ
നോൺ-സീറോ എക്സിറ്റ് സ്റ്റാറ്റസ് എന്നത് ഒരു പരാജയമായി കണക്കാക്കണം, ഒരു പുറം ഉണ്ടെങ്കിലും
സാധ്യത സേഫ്കാറ്റ് ഡാറ്റ വിജയകരമായി എഴുതി, പക്ഷേ അങ്ങനെ ചിന്തിച്ചില്ല.

ഡെസ്റ്റിനേഷൻ ഡയറക്‌ടറിയിൽ ഒരു ഫയൽ ദൃശ്യമാകുകയാണെങ്കിൽ, അത് ഉറപ്പുനൽകുന്നു എന്നത് വീണ്ടും ശ്രദ്ധിക്കുക
പൂർണ്ണമായിരിക്കുക.

If സേഫ്കാറ്റ് വിജയകരമായി പൂർത്തിയാക്കുന്നു, തുടർന്ന് അത് പുതുതായി സൃഷ്ടിച്ച ഫയലിന്റെ പേര് പ്രിന്റ് ചെയ്യും
(അതിന്റെ പാതയില്ലാതെ) സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക്.

നിർദ്ദേശിച്ചു അപേക്ഷകൾ


എന്നതിനായുള്ള ആവേശകരമായ ഉപയോഗങ്ങൾ സേഫ്കാറ്റ് ധാരാളം, വ്യക്തമായും, എന്നാൽ ഒരു വാക്ക് എന്താണ് സൂചിപ്പിക്കുന്നത്
അവർ.

നിങ്ങൾ Linux പ്രവർത്തിപ്പിക്കുകയും sendmail-ന് പകരം qmail ഉപയോഗിക്കുകയും ചെയ്യുന്നുവെങ്കിൽ, നിങ്ങളുടെ പരിവർത്തനം പരിഗണിക്കേണ്ടതാണ്
ഇൻബോക്സിലേക്ക് മെയിൽഡിർ അതിന്റെ ഉയർന്ന വിശ്വാസ്യതയ്ക്കായി. നിങ്ങളുടെ ഹോം ഡയറക്ടറി NFS മൌണ്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ,
qmail നിങ്ങളെ ഉപയോഗിക്കാൻ നിർബന്ധിക്കുന്നു മെയിൽഡിർ.

വേൾഡ് വൈഡ് വെബിൽ ഡാറ്റ ശേഖരിക്കാൻ നിങ്ങൾ CGI ആപ്ലിക്കേഷനുകൾ എഴുതുകയാണെങ്കിൽ, നിങ്ങൾ കണ്ടെത്തിയേക്കാം
സേഫ്കാറ്റ് ഉപയോഗപ്രദമായ. വെബ് ആപ്ലിക്കേഷനുകൾ രണ്ട് പ്രധാന പ്രശ്നങ്ങൾ നേരിടുന്നു. അവരുടെ പ്രകടനം
ഇന്റർനെറ്റിലെ എല്ലാ തടസ്സങ്ങളും തടസ്സങ്ങളും അനുഭവിക്കുന്നു; അവർക്ക് പരിചയപ്പെടുത്താൻ കഴിയില്ല
അവരുടെ സ്വന്തം പ്രകടന പ്രശ്നങ്ങൾ. കൂടാതെ, വെബ് ആപ്ലിക്കേഷനുകൾ ഒരിക്കലും ഉപേക്ഷിക്കരുത്
സെർവറും ഡാറ്റാബേസും പൊരുത്തമില്ലാത്ത അവസ്ഥയിലാണ്. എന്നിരുന്നാലും, CGI സ്ക്രിപ്റ്റ് ആണെങ്കിൽ ഇത് സാധ്യമാണ്
ചില ഡാറ്റാബേസ് നേരിട്ട് ഫ്രോബ് ചെയ്യുക - പ്രത്യേകിച്ചും ഡാറ്റാബേസ് ഓവർലോഡ് അല്ലെങ്കിൽ സ്ലോ ആണെങ്കിൽ. എന്ത്
ഉപയോക്താക്കൾക്ക് ബോറടിക്കുമ്പോൾ "നിർത്തുക" അല്ലെങ്കിൽ "ബാക്ക്" ക്ലിക്ക് ചെയ്യുമ്പോൾ സംഭവിക്കുമോ? ഒരുപക്ഷേ ഡാറ്റാബേസ് പ്രവർത്തനം
പൂർത്തിയാക്കുന്നു. ഒരുപക്ഷേ CGI സ്‌ക്രിപ്റ്റ് നശിപ്പിക്കപ്പെട്ടേക്കാം, ഇത് ഡിബിയെ പൊരുത്തമില്ലാത്ത അവസ്ഥയിലാക്കി.

ഇനിപ്പറയുന്ന തന്ത്രം പരിഗണിക്കുക. നിങ്ങളുടെ CGI സ്ക്രിപ്റ്റ് അതിന്റെ അഭ്യർത്ഥന ഒരു സ്പൂളിലേക്ക് മാറ്റുക
ഡയറക്ടറി ഉപയോഗിക്കുന്നു സേഫ്കാറ്റ്. ബ്രൗസറിലേക്ക് ഉടൻ ഒരു രസീത് തിരികെ നൽകുക. ഇപ്പോൾ ബ്രൗസർ
അവരുടെ സമർപ്പണം ലഭിച്ചുവെന്ന് പൂർണ്ണമായ ഗ്യാരന്റി ഉണ്ട്, കൂടാതെ പെർഫോമൻസ്
നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷന്റെ ഏറ്റവും മികച്ചതാണ്.

അതേസമയം, ഒരു സ്പൂളർ ഡെമൺ പുതിയ അഭ്യർത്ഥന ശ്രദ്ധിക്കുകയും അത് തട്ടിയെടുക്കുകയും അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു
ഡാറ്റാബേസ്. X മിനിറ്റിനുള്ളിൽ അവരുടെ അഭ്യർത്ഥന പൂർത്തീകരിക്കുമെന്ന് ബ്രൗസറുകളെ അറിയിക്കാം.
കാപ്രിസിയസ് ഇന്റർനെറ്റ് ഉണ്ടായിരുന്നിട്ടും ഫലം ഒപ്റ്റിമൽ പെർഫോമൻസ് ആണ്. കൂടാതെ, ഉപയോക്താക്കൾക്ക് കഴിയും
ഏകദേശം 100% വിശ്വാസ്യത വാഗ്ദാനം ചെയ്യുന്നു.

ഉദാഹരണങ്ങൾ


അയച്ച മെയിൽ ഉപയോഗിക്കാൻ ബോധ്യപ്പെടുത്താൻ മെയിൽഡിർ സന്ദേശ വിതരണത്തിനായി, ഇനിപ്പറയുന്ന വരി നിങ്ങളിലേക്ക് ചേർക്കുക
ഫോർവേഡ് ഫയൽ:

|SAFECAT ഹോം/മെയിൽഡിർ/ടിഎംപി ഹോം/മെയിൽഡിർ/പുതിയത് || പുറത്ത് 75 #USERNAME

എവിടെ സുരക്ഷിതം യുടെ സമ്പൂർണ്ണ പാതയാണ് സേഫ്കാറ്റ് പ്രോഗ്രാം, ഹോം എന്നതിലേക്കുള്ള പൂർണ്ണമായ പാതയാണ്
നിങ്ങളുടെ ഹോം ഡയറക്ടറി, ഒപ്പം USERNAME നിങ്ങളുടെ ലോഗിൻ നാമമാണ്. ഈ മാറ്റം വരുത്തുന്നത് പണമടയ്ക്കാൻ സാധ്യതയുണ്ട്
ഓഫ്; പല കാമ്പസുകളും കമ്പനികളും എൻഎഫ്എസ് ഉപയോഗിച്ച് യൂസർ ഹോം ഡയറക്ടറികൾ മൗണ്ട് ചെയ്യുന്നു. ഉപയോഗിക്കുന്നത് മെയിൽഡിർ ലേക്ക്
ചില NFS കാരണം നിങ്ങളുടെ മെയിൽ നഷ്‌ടമാകില്ലെന്ന് ഉറപ്പാക്കാൻ ഇൻബോക്‌സ് ഫോൾഡറിലേക്ക് ഡെലിവർ ചെയ്യുക
പിശക്. തീർച്ചയായും, നിങ്ങളൊരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററാണെങ്കിൽ, ഇതിലേക്ക് മാറുന്നത് പരിഗണിക്കേണ്ടതാണ്
qmail.

ഒരു പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുന്നതിനും അതിന്റെ ഔട്ട്പുട്ട് ഏതെങ്കിലും ഡയറക്ടറിയിലേക്ക് സുരക്ഷിതമായി പിടിക്കുന്നതിനും, നിങ്ങൾക്ക് ഒരു ഷെൽ ഉപയോഗിക്കാം
ഇനിപ്പറയുന്നതുപോലുള്ള സ്ക്രിപ്റ്റ്.

#!/ ബിൻ / ബാഷ്

MYPROGRAM=cat # നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന പ്രോഗ്രാം
TEMPDIR=/ tmp # ഒരു താൽക്കാലിക ഡയറക്ടറിയുടെ പേര്
DESTDIR=$HOME/work/data # വിവരങ്ങൾ സംഭരിക്കുന്നതിനുള്ള ഡയറക്ടറി

ശ്രമിക്കുക() { $* 2>/dev/null || പ്രതിധ്വനി NO 1>&2}

സജ്ജമാക്കുക `( $MYPROGRAM ശ്രമിക്കുക | സുരക്ഷിതമായി $TEMPDIR $DESTDIR ശ്രമിക്കുക ) 2>&1`
ടെസ്റ്റ് "$?" = "0" || പുറത്തുകടക്കുക -1
ടെസ്റ്റ് "$1" = "ഇല്ല" && {rm -f $DESTDIR/$2; പുറത്തുകടക്കുക -1; }

ഷെൽ ഉപയോഗിച്ച് സുരക്ഷിതമായ പ്രോഗ്രാമുകൾ എഴുതുന്നതിലെ പിഴവുകൾ ഈ സ്ക്രിപ്റ്റ് വ്യക്തമാക്കുന്നു. ദി
നിങ്ങളുടെ പ്രോഗ്രാം കുറച്ച് ഔട്ട്‌പുട്ട് സൃഷ്‌ടിച്ചേക്കാമെന്ന് സ്‌ക്രിപ്റ്റ് അനുമാനിക്കുന്നു, പക്ഷേ പൂർത്തിയാക്കുന്നതിൽ പരാജയപ്പെടുന്നു.
അതിനു വഴിയില്ല സേഫ്കാറ്റ് നിങ്ങളുടെ പ്രോഗ്രാം വിജയകരമായി പൂർത്തീകരിച്ചോ ഇല്ലയോ എന്നറിയാൻ,
ഷെല്ലിന്റെ അർത്ഥശാസ്ത്രം കാരണം. തൽഫലമായി, സേഫ്കാറ്റ് ഒരു ഫയൽ സൃഷ്ടിച്ചേക്കാം
"പൂർണ്ണമായത്" എന്നാൽ ഉപയോഗപ്രദമല്ലാത്ത ഡാറ്റ ഡയറക്ടറി. ഷെൽ സ്ക്രിപ്റ്റ് ഫയലിനെ ഇല്ലാതാക്കുന്നു
ആ കേസ്.

കൂടുതൽ പൊതുവായി, ഉപയോഗിക്കാനുള്ള ഏറ്റവും സുരക്ഷിതമായ മാർഗം സേഫ്കാറ്റ് അഭ്യർത്ഥിക്കുന്ന ഒരു സി പ്രോഗ്രാമിനുള്ളിൽ നിന്നാണ്
കൂടെ സുരക്ഷിതമാക്കുക ഫോർക്ക് () ഒപ്പം എക്സിക്വ്(). രക്ഷാകർതൃ പ്രക്രിയയ്ക്ക് ലളിതമായി ചെയ്യാൻ കഴിയും കൊല്ലുക() The സേഫ്കാറ്റ്
എന്തെങ്കിലും പ്രശ്നങ്ങൾ ഉണ്ടായാൽ പ്രോസസ്സ് ചെയ്യുക, ഓപ്ഷണലായി വീണ്ടും ശ്രമിക്കാവുന്നതാണ്. ഇതിലേക്ക് പോകണോ എന്ന്
നിങ്ങളുടെ ഡാറ്റ പരിരക്ഷിക്കുന്നതിൽ നിങ്ങൾ എത്രത്തോളം ഗൗരവതരമാണ് എന്നതിനെ ആശ്രയിച്ചിരിക്കും പ്രശ്‌നം. ഒരു രീതിയിലും, സേഫ്കാറ്റ്
നിങ്ങളുടെ ഡാറ്റാ ഫ്ലോയിലെ ദുർബലമായ ലിങ്ക് ആയിരിക്കില്ല.

onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് സേഫ്‌കാറ്റ് ഓൺലൈനായി ഉപയോഗിക്കുക



ഏറ്റവും പുതിയ ലിനക്സ്, വിൻഡോസ് ഓൺലൈൻ പ്രോഗ്രാമുകൾ