su
e amigos para o resgate! su
, sudo
e super
podem todos ser usados aqui. su
é tradicional, sudo
é o mais fácil e super
tem vantagens se você quiser que os usuários possam fazer partes disso.
Como você mencionou especificamente o teste do status de saída de apt-get upgrade
, você usaria 1 7 * * 1 apt-get update && apt-get upgrade && sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
.
Agora isso está ficando um pouco longo, então seguir o conselho do thrig e colocá-lo em um script tem vantagens, mas o exemplo dele tem dois defeitos: ele não verifica valores de retorno e o modo de manutenção no comando é seguido diretamente pelo próximo comando e eu suponho que houve uma razão para o atraso entre entrar no modo de manutenção e iniciar o apt-get, então você pode querer algo mais parecido com isto:
#!/bin/sh
set -e
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on || sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
sleep 1m || true
apt-get update || apt-get update
apt-get upgrade -y || apt-get install
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off || sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
Mas você tem um bom começo.