Yum com crontab - “Outro aplicativo está atualmente segurando o bloqueio do yum”

1

Eu quero usar o crontab para executar um script para atualizações do yum. O problema é que ele irá rodar o script uma vez, então yum ficou preso por um tempo (e não pode ser executado novamente). Eu recebo este erro:

$ sudo yum update
Existing lock /var/run/yum.pid: another copy is running as pid 5248.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory:...
Started:... 5 day(s) ago...
State: Sleeping, pid: 5248

Isto é o que eu coloco no crontab:

$ sudo crontab -e
0 4 * * *
/usr/local/bin/yum_updates.sh

Isso é o que está no script:

$ sudo vim /usr/local/bin/yum_updates.sh
#!/bin/bash
yum makecache
yum -y update
yum -y upgrade
mandb

Considerei o yum-cron, mas examinei o arquivo de configuração e ele não parece tão personalizável quanto o crontab (ou seja, não consigo executar atualizações de segurança um dia e atualizações completas em um dia diferente), mas corrija-me se eu estiver errado, eu não usei muito o yum-cron.

Eu gostaria de saber como parar este erro, para que eu possa executar scripts usando o crontab sem que ele mantenha o refém do programa ou fique com o processo travado depois de ser executado apenas uma vez.

    
por APNxRPG24 13.07.2018 / 10:11

4 respostas

0

Excelentes respostas, mas descobri que poderia fazer com que cada tipo de yum atualizasse sua própria entrada no crontab assim:

$ sudo crontab -e

#Full system update midnight every Monday and Tuesday
0 0 * * 1,2 /usr/bin/yum -y update

10 0 * * 1,2 /usr/bin/yum -y upgrade

#Security updates everyday at 2AM
0 2 * * * /usr/bin/yum -y update --security

Leva mais linhas, mas parece funcionar bem. É necessário notar que cada entrada deve ter uma linha em branco abaixo dela, especialmente a última entrada.

    
por 06.08.2018 / 00:13
0

altere seu script para

#!/bin/bash
#this line will kill that process is runing yum 
kill -9 'ps -aux | grep yum |tr -s " " : | cut -f2 -d : | head -1' 
yum makecache
kill -9 'ps -aux | grep yum |tr -s " " : | cut -f2 -d : | head -1'
yum -y update
yum -y upgrade
mandb
    
por 13.07.2018 / 11:23
0

Matar yum não é o que você quer, quero dizer que você vai ter a corrupção do pacote em algum momento, com certeza. Existe um pacote como o yum-cron que pode resolver o seu problema de maneira apropriada. Instale-o, edite /etc/yum/yum-cron.conf de acordo com suas necessidades (instale apenas segurança ou todos)

ative o serviço e inicie-o.

Você não precisará mais se preocupar com atualizações / atualizações pela metade ou quaisquer outros problemas que possam resultar em morte

    
por 13.07.2018 / 23:31
0

yum-cron

Não há necessidade de fazer sua própria entrada crontab para executar o YUM periodicamente. O YUM tem um pacote de suplementos chamado yum-cron . Este tutorial, intitulado: Como habilite atualizações de segurança automáticas no CentOS 7 com o yum-cron , mostre como configurá-lo e operá-lo.

Primeiro, verifique se ele está instalado:

$ sudo yum -y install yum-cron

Em seguida, configure:

$ cat /etc/yum/yum-cron.conf
....
apply_updates = yes

Ativar & inicie o serviço: Depois de fazer as alterações necessárias, verifique se o serviço está ativado e em execução / reiniciado:

$ sudo systemctl enable --now yum-cron

O que mais?

Tenha em mente que fazer todas as suas atualizações é apenas a ponta do que o yum-cron pode fazer. Você também pode configurá-lo para excluir pacotes específicos com os quais preferiria não lidar:

exclude = kernel*

Referências

por 14.07.2018 / 07:17

Tags