AKTUALISIEREN:
Am Ende habe ich das Dienstprogramm logrotate verwendet, um die ständig wachsenden Protokolldateien zu verarbeiten. Ich habe auch einige Cron-Jobs eingerichtet, die von Zeit zu Zeit nach nicht benötigten temporären Dateien suchen.
Ich habe den Standard Magento 2 Cron konfiguriert und läuft. Nach zwei Tagen sind beim Ausführen einiger Aktionen im Admin-Bereich einige Probleme aufgetreten. Als ich die Serverprotokolle überprüfte, stellte ich fest, dass es sich um ein Speicherplatzproblem handelte. Nach weiteren Untersuchungen stellte ich fest, dass dies update.log.txt
der Schuldige ist. Die Dateigröße wurde jede Minute um> 1 MB erhöht. Es gab eine Zeit, in der mehr als 20 GB erreicht wurden.
Ist es normal für ein Standard-Magento 2-Setup? Oder kann und wie kann ich es deaktivieren oder zumindest minimieren?
Dies geschieht sowohl im Entwickler- als auch im Produktionsmodus.
Das Cron-Setup basierte auf diesem Handbuch .
Registerkarte "Cron":
* * * * * <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
BEISPIEL INHALT DES LOGS
/var/www/html/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/MaintenanceStatusCommand.php / var / www / /setup/src/Magento/Setup/Console/Command/BackupCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/DependenciesShowFrameworkCommand.php / var / www / html / setup / src / Mago /Setup/Console/Command/UninstallCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/InfoTimezoneListCommand.php / var / www / html / setup / src / Magento / Setup / Console / Command /MaintenanceAllowIpsCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/ModuleStatusCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/InstallStore / www / html / setup / src / Magento / Setup / Konsole / Befehl / InfoBackupsListCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/MaintenanceDisableCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php / var / www / html / setup / src / Magento / Setup / Konsole / Befehl / InstallCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php / var / www / html / setup / src / Magento / Setup / Fixtures / IndexersStatesApplyFixture.php /var/www/html/setup/src/Magento/Setup/Fixtures/StoresFixture.php /var/www/html/setup/src/Magento/Setup/Fixtures/CategoriesFixture.php / var / www / html / setup / src / Magento / Setup / Fixtures / SimpleProductsFixture.php /var/www/html/setup/src/Magento/Setup/Fixtures/tax_rates.csv / var / www / html / setup / src / Magento / Setup / Validator / var / www / html / setup / src / Magento / Setup / Validator / DbValidator.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 / html / setup / leistungs-toolkit /var/www/html/setup/performance-toolkit/.htaccess / var / www / html / setup / leistungs-toolkit / profile / var / www / html / setup / performance-toolkit / profile / ce /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 / performance -toolkit / 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 / setup / performance-toolkit / var / www / HTML / Setup / Performance-Toolkit / .htaccess / var / www / HTML / Setup / Performance-Toolkit / Profile / var / www / HTML / Setup / Performance-Toolkit / Profile / CE / Var / www / HTML / Setup / Performance -toolkit / profile / 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/performance-toolkit/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 / setup / performance-toolkit / var / www / HTML / Setup / Performance-Toolkit / .htaccess / var / www / HTML / Setup / Performance-Toolkit / Profile / var / www / HTML / Setup / Performance-Toolkit / Profile / CE / Var / www / HTML / Setup / Performance -toolkit / profile / 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/performance-toolkit/README.txt / var / www / html / setup / performance-toolkit / Benchmark .jmx /var/www/html/vendor/.htaccess [] []php / var / www / html / setup / leistungs-toolkit /var/www/html/setup/performance-toolkit/.htaccess / var / www / html / setup / leistungs-toolkit / profile / var / www / html / setup / performance-toolkit / profile / ce /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 / performance-toolkit /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []php / var / www / html / setup / leistungs-toolkit /var/www/html/setup/performance-toolkit/.htaccess / var / www / html / setup / leistungs-toolkit / profile / var / www / html / setup / performance-toolkit / profile / ce /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 / performance-toolkit /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess [] []htaccess / var / www / html / setup / leistungs-toolkit / profile / var / www / html / setup / leistungs-toolkit / profile / ce / var / www / html / setup / leistungs-toolkit / profile / ce / groß. 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 / Profile / ce / extra_large.xml /var/www/html/setup/performance-toolkit/README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx / var / www / html / Anbieter / .htaccess [] []htaccess / var / www / html / setup / leistungs-toolkit / profile / var / www / html / setup / leistungs-toolkit / profile / ce / var / www / html / setup / leistungs-toolkit / profile / ce / groß. 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 / Profile / ce / extra_large.xml /var/www/html/setup/performance-toolkit/README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx / var / www / html / Anbieter / .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 [] []
Ich habe nur wenige Stellen gefunden, an denen dieses Protokoll generiert / aktualisiert werden könnte:
<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';
AKTUALISIEREN:
Am Ende habe ich das Dienstprogramm logrotate verwendet, um die ständig wachsenden Protokolldateien zu verarbeiten. Ich habe auch einige Cron-Jobs eingerichtet, die von Zeit zu Zeit nach nicht benötigten temporären Dateien suchen.
Antworten:
Soweit ich weiß, wird die
var/log/update.log
Datei tatsächlich mit dem Cron verwendet.Es ist in deklariert
\setup\src\Magento\Setup\Model\Cron\Status.php
Und dann über die
getLogFilePath()
Methode abgerufen .Wenn Sie überprüfen, wo diese Methode aufgerufen wird, finden Sie sie unter
\setup\src\Magento\Setup\Model\Cron\JobFactory.php
:Anschließend wird die
$streamOutput
Variable als Parameter an die Jobklasse übergeben, zum Beispiel:Wenn ich mit diesem Beispiel weitermache,
$this->output
wird das in derexecute()
Methode verwendet:Die
run()
Methode ist in deklariertvendor\symfony\console\Symfony\Component\Console\Command\Command.php
Die
$output
Variable wird dann an mehreren Stellen verwendet, z.Ebenso gut wie :
Ein weiteres interessantes:
Nach diesem letzten Code können bei sehr ausführlichen Parametern einige Dinge geschrieben werden. Vielleicht richten Sie Ihre Cron-Jobs mit ein
-vv
und deshalb werden Dinge protokolliert.Dies ist keine eindeutige Antwort, aber Sie sollten der Stapelverfolgung folgen, die ich Ihnen gerade gegeben habe, um das Problem zu untersuchen.
quelle
Sie haben wahrscheinlich für einige Ordner falsche Berechtigungen festgelegt. / update / cron listet alle Ordner mit falschen Berechtigungen auf
Einfacher Weg ist nur in crontab Update und Setup auskommentieren
Sie benötigen sie nicht, wenn Sie sie nicht über das Admin-Panel aktualisieren und installieren müssen.
Es ist eine gefährliche Idee für den Produktionsserver. Sie können manuell über Composer auf dem Test- / lokalen Server aktualisieren. Probier es aus; Kopieren Sie dann die Updates auf den Produktionsserver.
Das, was Sie wirklich brauchen, ist
Es verwaltet "Indexer, sendet automatisierte E-Mails, generiert die Sitemap usw." - wie in devdocs beschrieben
quelle
/var/log/update.log
ist eine Cron-Protokolldatei und dieses Problem tritt insbesondere dann auf, wenn Sie Dateien habenpermission issue
. "Das habe ich in meinem Fall bekommen, als ich diese Datei geöffnet habe."und dies könnte das Update sein: https://community.bitnami.com/t/update-log-file-grows-rapidly-in-magento-2-1-1/49253/6
Sie müssen die richtigen Berechtigungen und Eigentumsrechte für Ihre Magento-Verzeichnisse und -Dateien festlegen.
quelle
Wie ich weiß,
update.log
handelt es sich um Ihre benutzerdefinierte Protokolldatei, da Magento 2 diese Art von Dateien protokolliertIch bin nicht sicher, warum es so viele Protokolldaten in Ihrer Datei generiert, dass es sich möglicherweise um einen Syntaxfehler oder ähnliches handelt.
Aber ich würde vorschlagen, einfach mit dem
update.log
in Ihrem Magento 2-Codeverzeichnis zu suchen und dieses Protokoll aus Ihrem Code zu entfernen.quelle