first commit
This commit is contained in:
78
README.md
Normal file
78
README.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# Auto Update (systemd)
|
||||||
|
|
||||||
|
Script e serviço `systemd` para atualizar automaticamente o sistema e reiniciar quando necessário.
|
||||||
|
|
||||||
|
## Instalação
|
||||||
|
|
||||||
|
1. Salve o script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /usr/local/bin/auto-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Cole o conteúdo do script e salve (`Ctrl+O`, `Enter`, `Ctrl+X`).
|
||||||
|
|
||||||
|
2. Dê permissão de execução:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo chmod +x /usr/local/bin/auto-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Crie o serviço `systemd`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/systemd/system/auto-update.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Cole este conteúdo:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=Atualização automática do sistema
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/local/bin/auto-update.sh
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Ative o serviço:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable auto-update.service
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Instale o pacote necessário (se não tiver):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install dnf-utils -y
|
||||||
|
```
|
||||||
|
|
||||||
|
## O que o script faz
|
||||||
|
|
||||||
|
- Atualiza todos os pacotes automaticamente
|
||||||
|
- Verifica se precisa reiniciar
|
||||||
|
- Aguarda 30 segundos antes de reiniciar (tempo para cancelar se necessário)
|
||||||
|
- Registra tudo em `/var/log/auto-update.log`
|
||||||
|
|
||||||
|
## Teste e logs
|
||||||
|
|
||||||
|
Para testar sem esperar o boot:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl start auto-update.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Para ver os logs:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo journalctl -u auto-update.service -f
|
||||||
|
```
|
||||||
|
|
||||||
22
fedora_auto_update.sh
Normal file
22
fedora_auto_update.sh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script de atualização automática do Fedora
|
||||||
|
# Executa no boot e reinicia se necessário
|
||||||
|
|
||||||
|
LOG_FILE="/var/log/auto-update.log"
|
||||||
|
|
||||||
|
echo "=== Atualização automática iniciada em $(date) ===" >> "$LOG_FILE"
|
||||||
|
|
||||||
|
# Atualiza o sistema
|
||||||
|
dnf upgrade -y >> "$LOG_FILE" 2>&1
|
||||||
|
|
||||||
|
# Verifica se há necessidade de reiniciar
|
||||||
|
if [ -f /var/run/reboot-required ] || needs-restarting -r >> "$LOG_FILE" 2>&1; then
|
||||||
|
echo "Reinicialização necessária. Reiniciando em 30 segundos..." >> "$LOG_FILE"
|
||||||
|
sleep 30
|
||||||
|
reboot
|
||||||
|
else
|
||||||
|
echo "Atualização concluída. Reinicialização não necessária." >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== Atualização finalizada em $(date) ===" >> "$LOG_FILE"
|
||||||
Reference in New Issue
Block a user