Estou tentando "atualizar automaticamente" o gitlab. Eu criei um script de shell que verifica atualizações, instala quando uma atualização está disponível e envia os resultados por e-mail. Isso tudo funciona perfeitamente bem a partir de um terminal quando eu inicio o script do bash como root. Então, agendei o trabalho com crontab -e
e o configurei para ser executado diariamente.
Eu não deveria este é meu servidor gitlab pessoal, em casa, com nada de muito importante. Eu nunca faria isso em um ambiente de produção real.
A saída do processo de atualização é canalizada para um arquivo de log. Sempre que o cronjob é executado, ele falha. A saída do logfile é a seguinte:
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
gitlab-ce
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 357 MB of archives.
After this operation, 2,778 kB of additional disk space will be used.
Get:1 https://packages.gitlab.com/gitlab/gitlab-ce/debian stretch/main amd64 gitlab-ce amd64 9.3.8-ce.0 [357 MB]
apt-listchanges: Reading changelogs...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 357 MB in 17s (20.3 MB/s)
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)
O que está acontecendo aqui exatamente? Eu percebo que não é possível encontrar coisas, etc, mas o cronjob deve ser executado como root
desde que eu adicionei como root?
Além de algumas verificações, envio de e-mails de resultados, etc., o shellscript, essencialmente, é executado:
apt-get install --only-upgrade gitlab-ce &>> $LOGFILE
Como corrijo isso?