یہ مسئلہ کیسے پیش آتا ہے
آپ فائل کھولتے ہیں، اور جب آپ اپنی نقل تدوین کر رہے ہوتے ہیں تو کوئی اور اصل میں لکھ دیتا ہے: دوسرا منتظم، ترتیب کے انتظام کی کوئی کارروائی، پیکیج کی اپ گریڈ، یا خود ایپلی کیشن۔ پھر اگر آپ محفوظ کریں تو دوسرے کی تبدیلی کسی خرابی کے پیغام کے بغیر غائب ہو جاتی ہے۔ مقامی طور پر تدوین کر کے SFTP سے اپ لوڈ کرنا خاص طور پر اس خطرے سے دوچار ہے، کیونکہ پڑھنے اور لکھنے کے درمیان کافی وقت ہوتا ہے اور عام اپ لوڈ کسی چیز کا موازنہ نہیں کرتا۔
شروع کرنے سے پہلے حالت درج کریں
فائل ڈاؤن لوڈ کرتے وقت چیک سم اور آخری تبدیلی کا وقت نوٹ کریں۔ اپ لوڈ کرنے سے عین پہلے دونوں دوبارہ جانچیں۔ مختلف چیک سم کا مطلب ہے کہ فائل بدل گئی ہے اور آپ کو جائزہ لیے بغیر اس پر دوبارہ نہیں لکھنا چاہیے۔
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confتبدیلیوں کا موازنہ کر کے انہیں یکجا کریں
اپنی تدوین شدہ نقل نئے نام سے رکھیں، موجودہ نسخہ حاصل کریں اور اس کا موازنہ اس نسخے سے کریں جس سے آپ نے آغاز کیا تھا، اور اپنے نسخے سے بھی۔ پھر موجودہ نسخے پر دوبارہ لکھنے کے بجائے اپنی تبدیلی اس میں لاگو کریں۔ diff3 کمانڈ تینوں نسخے ایک ساتھ دکھا سکتی ہے۔
diff -u example.conf.orig example.conf.current
diff -u example.conf.orig example.conf.mine
diff3 example.conf.mine example.conf.orig example.conf.currentمعلوم کریں کہ فائل کو کیا بدل رہا ہے
اگر فائل مسلسل بدلتی رہے تو دوبارہ تدوین سے پہلے اس کا سبب تلاش کریں۔ دیکھیں کہ اسے کس نے کھول رکھا ہے اور جرنل اور پیکیج کی تاریخ دیکھیں۔ اگر فائل ترتیب کے انتظام کے نظام کے زیرِ اختیار ہے تو وہیں سانچہ بدلیں، ورنہ اگلی کارروائی آپ کی تدوین کو بدل دے گی۔
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logتنبیہ لاک نہیں ہوتی
vim اور nano جیسے ایڈیٹر خبردار کرتے ہیں اگر فائل کھولنے کے بعد بدل گئی ہو، مگر وہ کسی دوسرے عمل کو اس میں لکھنے سے نہیں روکتے۔ چیک سم کے موازنے پر بھی یہی بات لاگو ہوتی ہے: محفوظ کرنے سے عین پہلے جانچ کرنے سے تصادم کا ممکنہ وقفہ بہت مختصر ہو جاتا ہے، مگر صفر نہیں ہوتا۔ ایسے سرور پر جہاں کئی لوگ کام کرتے ہوں، ورژن کنٹرول میں رکھا گیا ترتیب کا ماخذ کسی بھی ایڈیٹر سے بہتر حفاظت دیتا ہے۔
CH-J Server Manager میں محفوظ کرتے وقت تحفظ
File Manager کا ایڈیٹر محفوظ کرتے وقت فائل دوبارہ جانچتا ہے۔ اگر اس کا مواد، اجازتیں یا لنک کا ہدف بدل گیا ہو تو محفوظ کرنے کا عمل رک جاتا ہے اور اصل اپنی موجودہ حالت میں رہتا ہے۔ پھر آپ سرور سے موجودہ نسخہ لوڈ کر سکتے ہیں، لیکن اس سے آپ کی غیر محفوظ شدہ تبدیلیاں ضائع ہو جاتی ہیں، اس لیے پہلے اپنا متن کہیں اور نقل کر لیں۔ ایڈیٹر آپ کے لیے نسخے یکجا نہیں کرتا۔ منتقلی کے دوران ایپ کسی ایسے ہدف کو بدلنے سے پہلے پوچھتی ہے جو بدل چکا ہو یا پہلے سے موجود ہو، اور اگر ماخذ منتقلی کے دوران بدل جائے تو دوبارہ شروع کرنے کو کہتی ہے۔