TgWitness / ডকুমেন্টেশন

কি পরীক্ষা করা হয়েছে →

তথ্যসূত্র / প্রমাণ

Telegram · সংরক্ষণ এবং পুনরুদ্ধার

ব্যাকআপ, পুরনো ফাইলগুলো আপনার ক্লাউডে স্থানান্তর, Object Lock-এর অধীনে অনুলিপি এবং নতুন মেশিনে পুনরুদ্ধার।

টিজিউইটনেস / ডকুমেন্টেশন · নিয়োগ এবং পুনরুদ্ধার

নিয়োগ ও পুনরুদ্ধার

প্যানেলটি তিনটি কাজ আলাদা করে:

টাস্ক এটি কী করে
একটি ব্যাকআপ রাখুন স্বাক্ষরিত জার্নাল, চেকপয়েন্ট, সংরক্ষিত ফাইল এবং সারিবদ্ধ রপ্তানিগুলি কনফিগারকৃত S3 গন্তব্যে অনুলিপি করুন।
স্থানীয় ফ্রি স্পেস নির্বাচিত পুরনো সংযুক্তিগুলো S3 বা rclone ক্লাউড রিমোটে কপি করুন, সেগুলো সম্পূর্ণরূপে পুনরায় পড়ুন, এনক্রিপ্টকৃত বাইটগুলো যাচাই করুন, তারপর যাচাইকৃত স্থানীয় কপি মুছে ফেলুন।
প্রমাণস্বরূপ একটি অনুলিপি সংরক্ষণ করুন S3 অবজেক্ট লক কনফিগার করুন এবং ফেরত আসা রিটেনশন স্ট্যাটাস পরীক্ষা করুন। সার্ভিসটিকে অনুরোধকৃত মোড এবং তারিখ নিশ্চিত করতে হবে।

স্থান মুক্ত করার সময় স্বাক্ষরিত জার্নাল কখনোই মুছে ফেলা বা পুনরায় লেখা হয় না। প্রতিটি সংযুক্তি তার মূল SHA-256 এবং একটি পুনরুদ্ধার রসিদ সংরক্ষণ করে। প্রমাণীকৃত এনক্রিপশনের আগে ঐচ্ছিক gzip সংকোচন করা হয়। ক্লাউড ফাইলনামে টেলিগ্রাম নাম, চ্যাট আইডি বা মূল সংযুক্তির নাম থাকে না। একটি সংযুক্তি সর্বোচ্চ ৩২ জিবি পর্যন্ত হতে পারে।

শুধুমাত্র একটি আপলোড প্রতিক্রিয়া ফাইল মুছে ফেলার অনুমতি দেয় না। TgWitness সম্পূর্ণ এনক্রিপ্ট করা অবজেক্টটি ডাউনলোড করে এবং এর আকার ও SHA-256 যাচাই করে, রসিদ সংরক্ষণ করে, তারপর মুছে ফেলার ঠিক আগে স্থানীয় বাইটগুলো আবার পরীক্ষা করে। একটি আপলোড ব্যর্থতা, ভিন্ন রিডব্যাক বা বাতিল হওয়া ট্রান্সফার স্থানীয় ফাইলটিকে অক্ষত রাখে। যদি একটি সক্ষম প্রমাণ ব্যাকআপ এখনও সেই ফাইলটি অনুলিপি না করে থাকে, তবে মুছে ফেলাও তার জন্য অপেক্ষা করে।

এই পৃষ্ঠায়

ডিস্কের জায়গা ভরে এলে#

খালি জায়গা প্যারামিটার → সংযুক্তি → ডিস্কের খালি জায়গা মানের নিচে নামলে (ডিফল্ট 1 GiB), সংযুক্তি ডাউনলোড থামে এবং সারি বজায় থাকে। পাঠ্য পর্যবেক্ষণ চলতে থাকে। এটি বিজ্ঞপ্তির ওপর নির্ভর করে না: বিজ্ঞপ্তি বন্ধ করলে ডাউনলোডের সংরক্ষিত জায়গা বা স্টোরেজ সুরক্ষা বন্ধ হয় না।

আগে ব্যবস্থা নিতে স্বয়ংক্রিয়ভাবে চালান চালু করুন, জায়গা খালি করতে স্থানীয় ফাইল সরান বেছে নিন এবং ডিস্কে জায়গা কম হলে অতিরিক্ত স্থানান্তর শুরু করুন চালু করুন। ঐচ্ছিক নিয়মটি ডিফল্টভাবে 5120 MiB-এর কম খালি জায়গায় শুরু হয় এবং দলে দলে কাজ করে যতক্ষণ না 10240 MiB খালি হয়। দুই সীমাই বদলানো যায়। গন্তব্য, ফাইলের ন্যূনতম বয়স, দলের সীমা, সম্পূর্ণ পুনরায় পড়ে যাচাই এবং প্রমাণের ব্যাকআপের শর্ত হাতে চালানোর মতোই। নিয়ম নিজে কোনো গন্তব্য চালু করে না। প্রতি 30 সেকেন্ডে পরীক্ষা হয়; ত্রুটি বা অগ্রগতি না হলে পরের চেষ্টা পাঁচ মিনিট পিছিয়ে যায়। অবস্থা ও আবার চেষ্টার সময় পুনরায় চালুর পরও থাকে। নিয়ম নিষ্ক্রিয় থাকলে নির্ধারিত কাজ স্বাভাবিক বিরতিতে চলে।

প্যানেল খালি জায়গা, প্যাকিংয়ের সংরক্ষিত জায়গা, নিয়মের প্রস্তুতি এবং অস্থায়ী জায়গার অভাবে বাদ দেওয়া ফাইল দেখায়। প্যাকিং ও পুনরুদ্ধার শুরুর আগে সর্বোচ্চ অস্থায়ী জায়গার চাহিদা এবং লেখার সময় উপলব্ধ জায়গা পরীক্ষা করে। ডাউনলোডের নির্ধারিত সংরক্ষিত জায়গা ব্যবহৃত হয়, তবে স্টোরেজ কাজের জন্য অন্তত 64 MiB। এগুলো ফাইল সিস্টেমের কোটা নয়; অন্য প্রক্রিয়া পরীক্ষার মধ্যবর্তী সময়ে জায়গা ব্যবহার করতে পারে।

Gzip দূরের অবজেক্ট তথ্য না হারিয়ে সংকুচিত করে; সক্রিয় জার্নাল ছোট করে না বা স্থানীয় আর্কাইভ বানায় না। JPEG, ভিডিও ও ZIP সামান্য ছোট হতে পারে বা একটু বড়ও হতে পারে। সংকোচন চালু থাকলে প্যাকিংয়ে সাময়িকভাবে সংযুক্তির প্রায় দ্বিগুণ আকারের সঙ্গে সংরক্ষিত জায়গা লাগতে পারে। সবচেয়ে বড় ফাইলের জন্য যথেষ্ট আগের শুরুর সীমা বেছে নিন। অতিরিক্ত বড় ফাইল রাখা ও রিপোর্ট করা হয়; ছোট ফাইল এবং আগে যাচাই করা দূরের কপি তখনও জায়গা খালি করতে পারে। যাচাইকৃত কপি থাকলে নতুন স্থানীয় প্যাকিং ফাইল ছাড়াই স্থানীয় ফাইল সরানো যায়। পুনরুদ্ধারেও অস্থায়ী জায়গা লাগে এবং তা পাওয়া পর্যন্ত প্রত্যাখ্যাত হতে পারে।

সরানোর উপযুক্ত ফাইল না থাকলে বা গন্তব্য নির্ধারিত না হলে TgWitness স্বয়ংক্রিয়ভাবে জায়গা খালি করতে পারে না। স্টোরেজ ব্যবস্থাপনা স্বাক্ষরিত জার্নাল কখনো ছাঁটে না বা নতুন করে লেখে না। নতুন পাঠ্য পর্যবেক্ষণের জন্য এখনও জায়গা লাগে।

একটি গন্তব্য সংযুক্ত করুন#

এক্সট্রা → স্টোরেজ ও ডিস্ক স্পেস → স্টোরেজ পরিচালনা-এ টাস্ক এবং গন্তব্য নির্বাচন করুন, সেভ করুন, তারপর পরীক্ষা আপলোড ও ডাউনলোড নির্বাচন করুন। পরীক্ষাটি একটি ছোট র‍্যান্ডম প্রব আপলোড করে এবং তা আবার পড়ে। এটি টেলিগ্রামের কোনো বিষয়বস্তু ব্যবহার করে না।

S3-এর জন্য, প্রদানকারীর প্রকৃত এন্ডপয়েন্ট, অঞ্চল এবং বাকেট ব্যবহার করুন। Wasabi, Backblaze, Cloudflare R2 এবং অন্যান্য সামঞ্জস্যপূর্ণ পরিষেবা একই S3 সেটিংস ব্যবহার করে। শুধুমাত্র একটি সামঞ্জস্যপূর্ণ API Object Lock-এর সমর্থন নির্দেশ করে না। গভর্ন্যান্স মোড অনুমোদিত প্রশাসককে রিটেনশন এড়িয়ে যেতে দেয়; কমপ্লায়েন্স মোডের ভিন্ন সীমাবদ্ধতা রয়েছে। রিটেনশনের উপর নির্ভর করার আগে ফেরতকৃত Object Lock স্ট্যাটাস পড়ুন।

rclone গন্তব্যের জন্য, rclone-এর প্রভাইডার সেটআপ ব্যবহার করে একটি রিমোট তৈরি করুন এবং সেই রিমোটের [name] সেকশনটি প্যানেলে পেস্ট করুন। ইনস্টলকৃত হেল্পার MEGA, Google Drive, OneDrive, Dropbox, Box, pCloud এবং সিলেক্টরে দেখানো অন্যান্য প্রদানকারীদের সমর্থন করে। ক্রেডেনশিয়ালসমূহ এই ওয়ার্কস্পেসের এনক্রিপ্টেড ভল্টে সংরক্ষিত থাকে। OAuth রিফ্রেশগুলো ভল্টে পুনরায় সংরক্ষিত হয়। ক্রেডেনশিয়ালসমূহ জার্নাল ইভেন্টে যোগ করা হয় না বা রিকভারি ডাউনলোডে অন্তর্ভুক্ত করা হয় না।

হেল্পারটি ওয়ার্কস্পেসের ভিতরে ইনস্টল করা হয়, একটি পিন করা সংস্করণ এবং SHA-256 সহ। এটি সিস্টেম PATH-এ যোগ করা হয় না। কনফিগারেশন ফাইল এবং ওয়ার্কিং ফাইলগুলো সেই ওয়ার্কস্পেসের মধ্যে অস্থায়ী ফাইল। কমান্ড-ভিত্তিক এবং লোকাল-ফাইল রিমোট প্রত্যাখ্যাত। rclone বর্তমানে বাহ্যিক অনুরোধের জন্য স্পষ্টভাবে নির্বাচিত একটি Direct রুট প্রয়োজন। একটি ওয়ার্কস্পেস SOCKS5 বা HTTP রুটের জন্য নেটিভ S3 স্টোরেজ ব্যবহার করুন; rclone অনুপলব্ধ রুট নীরবে বাইপাস করে না।

রিকভারি ফাইলটি রাখুন#

ফাইল কপি করার পর পুনরুদ্ধার ফাইল সংরক্ষণ করুন এবং এটি ইনস্টলেশনের থেকে আলাদা কোনো স্থানে রাখুন। এতে ডিক্রিপশন কী এবং স্বাক্ষরিত অবজেক্ট রসিদ থাকে, তাই এটিকে একটি প্রাইভেট কী ব্যাকআপ হিসেবে বিবেচনা করুন। মূল রিমোট কনফিগারেশন এবং গন্তব্যের ক্রেডেনশিয়ালগুলোও আলাদাভাবে সংরক্ষণ করুন। পরবর্তীতে তৈরি করা কপির আগে নেওয়া একটি পুনরুদ্ধার ফাইলে সেই পরবর্তীতে তৈরি ফাইলের রসিদ থাকবে না।

স্বাক্ষর-কী ফিঙ্গারপ্রিন্ট ইতিমধ্যেই স্বতন্ত্রভাবে রেকর্ড করা উচিত। একই ফাইলে সরবরাহিত কী-র বিরুদ্ধে শুধুমাত্র যাচাই করা স্বাক্ষর প্রমাণ করে না এটি কার পুনরুদ্ধার ফাইল।

বিদ্যমান একটি ওয়ার্কস্পেসে অনুপস্থিত স্টোরেজ রসিদ মেরামত করতে, সংরক্ষিত রিকভারি ফাইল থেকে Recover files খুলুন এবং ফাইলটি নির্বাচন করুন। প্যানেলটি স্বাক্ষর যাচাই করে এবং একই ওয়ার্কস্পেস স্বাক্ষর কী চায়। এটি ভিন্ন কোনো স্টোরেজ কী প্রতিস্থাপন করতে অস্বীকার করে। তারপর Restore all files নির্বাচন করুন। পুনরুদ্ধার স্বয়ংক্রিয় স্টোরেজ নিয়মটি স্থগিত করে, যাতে পরবর্তী নির্ধারিত পাস অবিলম্বে পুনরুদ্ধারকৃত ফাইলগুলো আবার মুছে ফেলতে না পারে। স্থানীয় কপি নিয়ে কাজ শেষ হলে নিয়মটি পুনরায় সক্রিয় করুন।

Restoration সাইফারটেক্সট যাচাই করে, ডিক্রিপশন প্রমাণীকরণ করে, প্রয়োজনে ডিকম্প্রেস করে এবং ফাইল স্থাপনের আগে মূল প্লেনটেক্সট SHA-256 পরীক্ষা করে। media/একটি দূষিত রিমোট অবজেক্ট কখনই একটি লোকাল ফাইল প্রতিস্থাপন করে না। ভিন্ন বাইটযুক্ত বিদ্যমান লোকাল ফাইলটি ওভাররাইট করার পরিবর্তে পর্যালোচনার জন্য রাখা হয়।

ইনস্টলেশন হারানোর পর পুনরুদ্ধার#

TgWitness অন্য একটি মেশিনে ইনস্টল করুন। ব্যক্তিগত পুনরুদ্ধার ফাইল, পৃথকভাবে রেকর্ড করা ফিঙ্গারপ্রিন্ট এবং আসল গন্তব্য শংসাপত্র ব্যবহার করুন:

python -m tgwitness.storage recover \
  --recovery storage-recovery.json \
  --fingerprint TRUSTED_WORKSPACE_SHA256 \
  --credentials original-rclone.conf \
  --output recovered-attachments

S3-এর জন্য, --credentials একটি ব্যক্তিগত JSON ফাইলের দিকে নির্দেশ করে যার access_key এবং secret_key; স্বাক্ষরিত পুনরুদ্ধার ফাইল গন্তব্য সেটিংস সরবরাহ করে। কমান্ডটি একটি সরাসরি বাহ্যিক সংযোগ ব্যবহার করে এবং যখন কোনো rclone রিমোটের প্রয়োজন হয়, তখন পিন করা হেল্পার ডাউনলোড করে। এটি বিদ্যমান আউটপুট ডিরেক্টরি গ্রহণ করে না।

পুনরুদ্ধারকৃত মূল বাইটগুলো লিখিত হয় recovered-attachments/media/, নামকরণ করা হয়েছে তাদের SHA-256 দ্বারা। recovery-log.jsonl হল পুনরুদ্ধার অপারেশনগুলির একটি স্বাক্ষরবিহীন রেকর্ড। কমান্ডটি হারানো স্বাক্ষরিত জার্নাল বা এর স্বাক্ষর কী পুনরায় তৈরি করে না। সেগুলির জন্য একটি সম্পূর্ণ ওয়ার্কস্পেস ব্যাকআপ রাখুন। একটি স্টোরেজ পুনরুদ্ধার ফাইল একটি সম্পূর্ণ ওয়ার্কস্পেস ব্যাকআপ নয়।

অপারেটর বট এবং সমাপ্তি বিজ্ঞপ্তি#

টেলিগ্রাম বট অপারেটরের অন্তর্গত। BotFather-এর মাধ্যমে এটি তৈরি করুন এবং প্যানেলে এর টোকেন, গন্তব্য চ্যাট এবং স্পষ্ট অনুমোদিত টেলিগ্রাম ব্যবহারকারী আইডি সেট করুন। প্রেরক এবং চ্যাট উভয়ই মিলতে হবে। অন্যান্য বট থেকে ফরওয়ার্ড করা বার্তা এবং কমান্ড উপেক্ষা করা হয়।

/status এবং /stats ডিফল্ট শুধুমাত্র-স্ট্যাটাস মোডে উপলব্ধ। ঐচ্ছিক নিয়ন্ত্রণ মোড যোগ করে /pause, /resume এবং /copy. /copy কনফিগার করা স্টোরেজ টাস্ক অনুরোধ করে; এর মানে এই নয় যে একটি রিমোট আপলোড ইতিমধ্যেই শেষ হয়েছে। কমান্ডগুলো ইচ্ছামত URL, ফাইল বা শেল প্রোগ্রাম সরবরাহ করতে পারে না।

অ্যালার্ট এবং টাস্ক সম্পন্নতার জন্য পৃথক বিজ্ঞপ্তি সেটিংস ব্যবহার করুন। সম্পন্নতার বিজ্ঞপ্তি ফাঁকযুক্ত অ্যাকাউন্ট এক্সপোর্টকে সম্পূর্ণ এক্সপোর্ট থেকে পৃথক করে এবং ইতিহাস ও স্টোরেজ গণনা দেখায়। বার্তার অংশবিশেষ শুধুমাত্র বিজ্ঞপ্তি সেটিংসে আলাদাভাবে সক্ষম করলেই অন্তর্ভুক্ত হবে। সার্ভিস পিকার একটি স্থির প্রদানকারী উদাহরণ সেটের পরিবর্তে প্রকৃত ইনস্টলকৃত Apprise ক্যাটালগ থেকে তৈরি হয়।