Cronjobs + PHP + Composer + Drupal Update (E-Mail Benachrichtigung)

Mit "composer update --dry-run" Aktualisierungen erfassen und als E-Mail benachrichtigung an "admin/webmaster" schicken:

#!/usr/bin/php
<?php

$webdir = "/var/www/vhosts/site123/httpdocs";
$email 	= "admin@example.com";
$date_now = date("Y-m-d H:i:s");

chdir($webdir);

$composer_output = shell_exec( "composer update --dry-run 2>&1" );

$update_available = 0;

if( preg_match("#Nothing to install or update#sium", $composer_output) ) {
    $update_available = 0;
}

if( preg_match("#([1-9] installs)|([1-9]\d? updates)#simu", $composer_output) ) {
    $update_available = 1;
}


if( !empty( $update_available) ) {

    echo " \n\n{$date_now} UPDATE FOUND \n\n ";
    $subject = "Updates Available $date_now";
    $body = " Output of \"composer update --dry-run\": \n\n $composer_output \n\n";
    mail($email, $subject, $body );
    
} else {
    echo " \n\n{$date_now} No Update Available. \n\n ";

}
// END


Cronjob Eintrag (Jeden Tag zweimal überprüfen):

1 */12 * * *   /path/to/my/update-monitoring-script.php >> /path/to/my/update-monitoring.log

 

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Suche

Neueste Kommentare

  • 18 hours ago
    How to Renew Let’s Encrypt SSL Certificate on Plesk via Ubuntu Shell

    Let’s Encrypt will only accept a wildcard via DNS challenge. 

    If your Plesk instance can’t create the _acme-challenge.example.com TXT (external DNS), the extension can’t complete validation and will show no success. 

  • 1 week ago
    Warning: Undefined array key "url" in Drupal\Core\Asset\CssCollectionOptimizerLazy->optimizeGroup()
    Warning: Undefined array key "url" in Drupal\Core\Asset\JsCollectionOptimizerLazy->optimizeGroup() 
  • 1 week 2 days ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr
    sudo timedatectl set-timezone Europe/Berlin
  • 2 weeks 2 days ago
    Warning: PHP Startup: Unable to load dynamic library 'apcu.so' ... cannot open shared object file: No such file or directory

    Try this:

  • 4 weeks 1 day ago
    List Cronjobs for all users (via for + crontab)

    Alternative (without warnings like "no crontab for dovecot") to see all tasks:

  • 3 weeks 6 days ago
    Install APCu (PHP 8.1, Plesk)

    php 8.3 apcu failed

    über Plesk hat es geklappt.

     

  • 3 weeks 6 days ago
    Install APCu (PHP 8.1, Plesk)

     

    install:

    # sudo apt install php-dev
    
  • 3 weeks 6 days ago
    pecl install apcu : phpize: not found / ERROR: `phpize' failed

    phpize

    # sudo apt install php-dev
    

     

    details

  • 3 weeks 6 days ago
    Install APCu (PHP 8.1, Plesk)

    Problem:

  • 2 months 2 weeks ago
    Install APCu (PHP 8.1, Plesk)

    Problem: