Magento 2 আপডেট.log প্রতি মিনিটে উল্লেখযোগ্য আকার বৃদ্ধি করে


9

হালনাগাদ:

আমি ক্রমবর্ধমান লগ ফাইলগুলি পরিচালনা করতে লোগ্রোটেট ইউটিলিটিটি ব্যবহার করে শেষ করেছি। আমি কয়েকটি ক্রোন জবও সেট আপ করেছি যা সময়ে সময়ে অযৌক্তিক অস্থায়ী ফাইলগুলি পরীক্ষা করে দেখবে।


আমার কাছে স্ট্যান্ডার্ড ম্যাজেন্টো 2 ক্রোন কনফিগার করা এবং চলছে। দু'দিন পরে, অ্যাডমিন প্যানেলে কিছু ক্রিয়াকলাপ চালানোর সময় আমি কিছু সমস্যার মুখোমুখি হয়েছি। আমি যখন সার্ভারের লগগুলি পরীক্ষা করেছিলাম তখন আমি জানতে পারি এটি একটি ডিস্ক স্পেস সমস্যা। আরও তদন্তের পরে আমি জানতে পারি যে update.log.txtএটিই অপরাধী। ফাইলের আকার প্রতি মিনিটে> 1 এমবি বৃদ্ধি পাচ্ছিল। এমন সময় ছিল যা এটি 20 গিগাবাইটের বেশি পৌঁছেছিল।

এখানে চিত্র বর্ণনা লিখুন

এটি কি স্ট্যান্ডার্ড ম্যাজেন্টো 2 সেটআপের জন্য সাধারণ? বা কীভাবে আমি এটি অক্ষম করতে পারি বা কমপক্ষে এটি হ্রাস করতে পারি?

এটি উভয় বিকাশকারী এবং উত্পাদন মোডে ঘটে।

ক্রোন সেটআপ এই গাইডের উপর ভিত্তি করে ছিল ।

ক্রোন ট্যাব:

* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log

লগের নমুনা বিষয়বস্তু

/var/www/html/setup/src/Magento/Setup/Console/Command/I18nCollectPrassesCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/Main مينStatusCommand.php / var / www / html /setup/src/Magento/Setup/Console/Command/BackupCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/D dependencyShowFrameworkCommand.php / var / www / html / src / Magento / সেটআপ / কনসোল / কমন্ড / আনইনস্টলকম্যান্ড.এফপি /var/www/html/setup/src/Magento/Setup/Console/Command/InfoTimezoneListCommand.php / var / www / এইচটিএমএল / সেটআপ / এসসিআর / ম্যাগেন্টো / কমান্ড / কনসোল / মেনটেইনএলএইপসকম্যান্ড.এফপি /var/www/html/setup/src/Magento/Setup/Console/Command/ModuleStatusCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/Installstore / WWW / HTML / সেটআপ / src / Magento / সেটআপ / কনসোল / কমান্ড / InfoBackupsListCommand।php /var/www/html/setup/src/Magento/Setup/Console/Command/MainenterDisableCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php / var / www / এইচটিএমএল / সেটআপ / এসসিআর / ম্যাজেন্টো / সেটআপ / কনসোল / কমান্ড / ইনস্টলকম্যান্ড.এফপি /var/www/html/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php / var / www / html / setup / src / ম্যাজেন্টো / সেটআপ / ফিক্সচার / ইনডেক্সারস স্টেটস অ্যাপলিফাইচার্স.পিএপিপি /vv/www/html/setup/src/Magento/Setup/Fixtures/StoresFixture.php /var/www/html/setup/src/Magento/Setup/Fixtures/Cp श्रेणিগুলি / বিভাগ var / www / এইচটিএমএল / সেটআপ / এসসিআর / ম্যাজেন্টো / সেটআপ / ফিক্সচারস / সিম্পলপ্রডাক্টস ফিক্সচার.পিপি /var/www/html/setup/src/Magento/Setup/Fixtures/tax_rates.csv / var / www / এইচটিএমএল / সেটআপ / এসসিআর / ম্যাজেন্টো / সেটআপ / ভ্যালিডেটর / ভেরি / www / এইচটিএমএল / সেটআপ / এসসিআর / ম্যাজেন্টো / সেটআপ / ভ্যালিডেটর / ডিবিভালিডেটর।php /var/www/html/setup/src/Magento/Setup/Validator/IpValidator.php /var/www/html/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php / var / www / html / setup / index.php / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট /var/www/html/setup/performance-toolkit/.htaccess / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিই /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml / var / www / html / setup / অভিনয় -টোকলিট / README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []php /var/www/html/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php /var/www/html/setup/index.php / var / www / html / সেটআপ / পারফরম্যান্স-টুলকিট / ভার / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / .htaccess / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স -টোকলিট / প্রোফাইল / সিই / লার্জ.এক্সএমএল /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml /var/www/html/setup/performance-toolkit/README.txt / var / www / html / setup / পারফরম্যান্স-টুলকিট / বেঞ্চমার্ক .jmx /var/www/html/vendor/.htaccess [] []php /var/www/html/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php /var/www/html/setup/index.php / var / www / html / সেটআপ / পারফরম্যান্স-টুলকিট / ভার / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / .htaccess / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স -টোকলিট / প্রোফাইল / সিই / লার্জ.এক্সএমএল /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml /var/www/html/setup/performance-toolkit/README.txt / var / www / html / setup / পারফরম্যান্স-টুলকিট / বেঞ্চমার্ক .jmx /var/www/html/vendor/.htaccess [] []পিএইচপি / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট /var/www/html/setup/performance-toolkit/.htaccess / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিই /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml / var /www/html/setup/performance-toolkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml / var / www / html / setup / পারফরম্যান্স-টুলকিট /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []পিএইচপি / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট /var/www/html/setup/performance-toolkit/.htaccess / var / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিই /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml / var /www/html/setup/performance-toolkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml / var / www / html / setup / পারফরম্যান্স-টুলকিট /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []এইচটিসেস / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / ভের / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / বড় xML /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml / var / www / html / setup / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিই / এক্সট্রা_লাজ.এক্সএমএল /var/www/html/setup/performance-toolkit/README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx / var / www / html / বিক্রেতা / .htaccess [] []এইচটিসেস / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / ভের / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / ভেরি / www / এইচটিএমএল / সেটআপ / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিআর / বড় xML /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml / var / www / html / setup / পারফরম্যান্স-টুলকিট / প্রোফাইল / সিই / এক্সট্রা_লাজ.এক্সএমএল /var/www/html/setup/performance-toolkit/README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx / var / www / html / বিক্রেতা / .htaccess [] []txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []

আমি এমন কয়েকটি জায়গা পেয়েছি যেখানে এই লগটি উত্পন্ন / আপডেট হতে পারে:

<INSTALL_DIR>setup\src\Magento\Setup\Console\Command\CronRunCommand.php:
       75      protected function execute(InputInterface $input, OutputInterface $output)
       76      {
       77:         $notification = 'setup-cron: Please check var/log/update.log for execution summary.';
       78  
       79          if (!$this->deploymentConfig->isAvailable()) {

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\ReadinessCheck.php:
      164          $write->writeFile(self::SETUP_CRON_JOB_STATUS_FILE, $resultJson);
      165  
      166:         // write to permanent log file, var/log/update.log
      167          foreach ($errorLogMessages as $errorLog) {
      168              $this->status->add($errorLog, \Psr\Log\LogLevel::ERROR, false);

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\SetupLoggerFactory.php:
       22      {
       23          $logger = new \Monolog\Logger($channelName);
       24:         $path = BP . '/var/log/update.log';
       25          $logger->pushHandler(new \Monolog\Handler\StreamHandler($path));
       26          return $logger;

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\SetupStreamHandler.php:
       17       * @var string
       18       */
       19:     protected $fileName = '/var/log/update.log';
       20  
       21      /**

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\Status.php:
       81          $this->varReaderWriter = $filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
       82          $this->statusFilePath = $statusFilePath ? $statusFilePath : '.update_status.txt';
       83:         $this->logFilePath = $logFilePath ? $logFilePath : DirectoryList::LOG . '/update.log';
       84          $this->updateInProgressFlagFilePath = $updateInProgressFlagFilePath
       85              ? $updateInProgressFlagFilePath

    <INSTALL_DIR>setup\src\Magento\Setup\Test\Unit\Model\Cron\StatusTest.php:
       71          $this->varReaderWriter->expects($this->any())
       72              ->method('getAbsolutePath')
       73:             ->with('log/update.log')
       74:             ->willReturn('DIR/var/log/update.log');
       75:         $this->assertEquals('DIR/var/log/update.log', $this->status->getLogFilePath());
       76      }
       77  

    <INSTALL_DIR>update\app\code\Magento\Update\CronReadinessCheck.php:
       16      const CRON_JOB_STATUS_FILE = '.update_cronjob_status';
       17  
       18:     const UPDATE_CRON_LOG_FILE = 'var/log/update.log';
       19  
       20      /**#@+
       ..
       91          file_put_contents(MAGENTO_BP . '/var/' . self::CRON_JOB_STATUS_FILE, $resultJson);
       92  
       93:         // If non-accessible paths are found, log an 'error' entry for the same in update.log
       94          if ( !$success && !empty($outputString) ) {
       95              $updateLoggerFactory = new UpdateLoggerFactory();

    <INSTALL_DIR>update\app\code\Magento\Update\Status.php:
       67      ) {
       68          $this->statusFilePath = $statusFilePath ? $statusFilePath : MAGENTO_BP . '/var/.update_status.txt';
       69:         $this->logFilePath = $logFilePath ? $logFilePath : MAGENTO_BP . '/var/log/update.log';
       70          $this->updateInProgressFlagFilePath = $updateInProgressFlagFilePath
       71              ? $updateInProgressFlagFilePath

    <INSTALL_DIR>update\app\code\Magento\Update\UpdateLoggerFactory.php:
       29       */
       30      public function __construct(
       31:         $logFile = '/var/log/update.log',
       32          $channelName = 'update-cron'
       33      ) {

    <INSTALL_DIR>update\cron.php:
       15  $status = new \Magento\Update\Status();
       16  $cronReadinessChecker = new \Magento\Update\CronReadinessCheck();
       17: $notification = 'update-cron: Please check var/log/update.log for execution summary.' . PHP_EOL;
       18  
       19  if (!$cronReadinessChecker->runReadinessCheck()) {

    <INSTALL_DIR>update\dev\tests\integration\testsuite\Magento\Update\StatusTest.php:
       43          $this->statusFilePath = __DIR__ . '/_files/update_status.txt';
       44          $this->tmpStatusFilePath = TESTS_TEMP_DIR . '/update_status.txt';
       45:         $this->tmpStatusLogFilePath = TESTS_TEMP_DIR . '/update.log';
       46          $this->updateInProgressFlagFilePath = TESTS_TEMP_DIR . '/update_in_progress.flag';
       47          $this->updateErrorFlagFilePath = TESTS_TEMP_DIR . '/update_error.flag';

হালনাগাদ:

আমি ক্রমবর্ধমান লগ ফাইলগুলি পরিচালনা করতে লোগ্রোটেট ইউটিলিটিটি ব্যবহার করে শেষ করেছি। আমি কয়েকটি ক্রোন জবও সেট আপ করেছি যা সময়ে সময়ে অযৌক্তিক অস্থায়ী ফাইলগুলি পরীক্ষা করে দেখবে।


1
আমার স্টোর নিয়েও আমার একই সমস্যা হচ্ছে। আমার আপডেট.লগ ফাইলটি 23 জি ছিল এবং আসলে আমার রাতে মাইএসকিএল ক্র্যাশ করেছিল। আমি নিশ্চিত যে কি হচ্ছে - আমি মোটামুটি ভ্যানিলা ইনস্টল করেছি।
বাজেট

উত্তর:


6

আমি যতদূর জানি var/log/update.logফাইলটি প্রকৃতপক্ষে ক্রনের সাথে ব্যবহৃত হয় is

এটি ঘোষণা করা হয়েছে \setup\src\Magento\Setup\Model\Cron\Status.php

$this->logFilePath = $logFilePath ? $logFilePath : DirectoryList::LOG . '/update.log';

এবং তারপরে getLogFilePath()পদ্ধতিটির মাধ্যমে পুনরুদ্ধার করা হয়েছে ।

এই পদ্ধতিটি কোথায় ডাকা হচ্ছে তা যদি আপনি পরীক্ষা করেন তবে এটি এর অধীনে \setup\src\Magento\Setup\Model\Cron\JobFactory.php:

$logStream = fopen($cronStatus->getLogFilePath(), 'a+');
$streamOutput = new MultipleStreamOutput([$statusStream, $logStream]);

তারপরে $streamOutputভেরিয়েবলটি কাজের ক্লাসে প্যারামিটার হিসাবে পাস হয়, উদাহরণস্বরূপ:

return new JobUpgrade(
    $this->serviceLocator->get('Magento\Setup\Console\Command\UpgradeCommand'),
    $objectManagerProvider,
    $streamOutput,
    $this->serviceLocator->get('Magento\Setup\Model\Cron\Queue'),
    $cronStatus,
    $name,
    $params
);

যদি আমি এই উদাহরণটি দিয়ে চলতে থাকি $this->outputতবে execute()পদ্ধতিটিতে এটি ব্যবহৃত হয় :

$this->command->run(new ArrayInput($this->params), $this->output);

run()পদ্ধতিতে ঘোষিত হয়vendor\symfony\console\Symfony\Component\Console\Command\Command.php

$outputপরিবর্তনশীল তারপর যেমন বিভিন্ন জায়গায় ব্যবহার করা হয়:

    $this->initialize($input, $output);

পাশাপাশি:

    if ($input->isInteractive()) {
        $this->interact($input, $output);
    }

    $input->validate();

    if ($this->code) {
        $statusCode = call_user_func($this->code, $input, $output);
    } else {
        $statusCode = $this->execute($input, $output);
    }

আর একটি আকর্ষণীয়:

        } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
            $output->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
        }

এই শেষ কোড অনুসারে, খুব ভের্বোজ প্যারামিটারের ক্ষেত্রে কিছু স্টাফ লেখা যেতে পারে। হতে পারে আপনি আপনার ক্রোন জবগুলি সেটআপ করেছেন -vvএবং এজন্য স্টাফ লগ হচ্ছে।

এটি একটি সুনির্দিষ্ট উত্তর নয়, তবে এই সমস্যাটির তদন্ত করার জন্য আমি আপনাকে কেবল সেই স্ট্যাক ট্রেসটি অনুসরণ করা উচিত।


2

আপনি সম্ভবত কিছু ফোল্ডারে ভুল অনুমতি সেট করেছেন। / আপডেট / ক্রোন ভুল অনুমতি সহ সমস্ত ফোল্ডার তালিকাভুক্ত করে

সহজ উপায়টি হ'ল ক্রন্টব আপডেট এবং সেটআপে কেবল মন্তব্য করা

#* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
#* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log

আপনার যদি অ্যাডমিন প্যানেল থেকে আপডেট এবং ইনস্টল করার প্রয়োজন না হয় তবে এগুলি আপনার দরকার নেই।

এটি প্রোডাকশন সার্ভারের জন্য বিপজ্জনক ধারণা। আপনি পরীক্ষা / স্থানীয় সার্ভারে সুরকারের মাধ্যমে ম্যানুয়ালি আপডেট করতে পারেন; এটা পরীক্ষা করো; তারপরে প্রোডাকশন সার্ভারে আপডেটগুলি অনুলিপি করুন।

আপনার যা প্রয়োজন তা হ'ল

* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log

এটি "সূচকগুলি পরিচালনা করে, স্বয়ংক্রিয় ই-মেলগুলি প্রেরণ করে, সাইটম্যাপ তৈরি করে এবং এই জাতীয়" - ডেভডক্সে বর্ণিত


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

1

/var/log/update.logক্রন লগ ফাইল নেই এবং এই সমস্যা বিশেষ করে আসে আপনি ফাইল আছে permission issue। "আমি এই ফাইলটি খুললে আমার ক্ষেত্রে এটিই ছিল" "

এবং এটি ঠিক করা যেতে পারে: https://commune.bitnami.com/t/update-log-file-grows-rapidly-in-magento-2-1-1/49253/6

আপনাকে আপনার Magento ডিরেক্টরি এবং ফাইলগুলিতে সঠিক অনুমতি এবং মালিকানা সেট করতে হবে।


0

আমি জানি update.logহিসাবে আপনার কাস্টম লগ ফাইল কারণ Magento 2 এই ধরনের ফাইল লগ জেনারেট করে

  • var / লগ / ডিবাগ.লগ - পিএসআর \ লগ \ লগারআইন্টারফেস :: ডিবাগ () দ্বারা সংরক্ষিত সমস্ত তথ্য সেখানে সংরক্ষিত আছে।
  • var / লগ / ব্যতিক্রম log লগ - সমস্ত ব্যতিক্রম তথ্য সেখানে সংরক্ষণ করা হয়।
  • var / log / system.log - অন্যান্য লগিং স্তরের তথ্য সেখানে সংরক্ষণ করা হয়।

আমি নিশ্চিত নই কেন এটি আপনার ফাইলে এত লগ ডেটা উত্পন্ন করে কিছু সংশ্লেষ ত্রুটি বা এর মতো কিছু হতে পারে।

তবে আমি কেবলমাত্র update.logআপনার Magento 2 কোড ডিরেক্টরিতে এর সাথে অনুসন্ধান করার পরামর্শ দেব এবং সেই কোডটি আপনার কোড থেকে সরিয়ে ফেলব ।


হাই, উত্তর দেওয়ার জন্য ধন্যবাদ। আমি এটির একটি কাস্টম লগ মনে করি না, কারণ আমি এটি কোনও ডিফল্ট ম্যাজেন্টো ক্লাসে খুঁজে পেতে পারি। আমি আরও তথ্যের জন্য আমার প্রশ্ন আপডেট করেছি।
9'30 এ পুনরায়ব্লাব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.