Auto Update

I need a simple script please. I think this will help a lot of people. I need it to simply update while I’m asleep.

I need it to run the following but not at the same time. I need them to run 1 after another. If they run at the same time then it reboots instead of doing any of the others.

apt-get update
dietpi-update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get clean
apt-get autoremove -y
reboot

Please help. I have tried several methods and all of them either don’t work or reboots at the same time as it starts them all which means yay it reboots but nothing actually gets done. Also if it tries to run everything at the same time it also fails as it cannot open the same files by multiple tasks.

Hmmm … have you tried something like this?


root@DietPi:~# crontab -e

and edit this like:

 Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

00 02 * * * /usr/bin/apt-get update
10 02 * * * /DietPi/dietpi/dietpi-update
20 02 * * * /usr/bin/apt-get upgrade -y
30 02 * * * /usr/bin/apt-get dist-upgrade -y
40 02 * * * /usr/bin/apt-get clean
50 02 * * * /usr/bin/apt-get autoremove -y
00 03 * * * /sbin/reboot

I tried something like that but after some help in irc chat I settled on this one.

cd ../home

sudo mkdir jb

cd jb

sudo mkdir scripts

cd scripts

sudo nano /home/jb/scripts/update



#!/bin/bash
apt-get update ; apt-get -y upgrade ; apt-get -y dist-upgrade ; apt-get clean ; apt-get -y autoremove ; reboot




sudo crontab -e

0 3 * * * sudo bash /home/jb/scripts/update

apt-get install cron-apt
All in one hassle free package.

If I knew how to delete posts I would delete the other one of these.

Solution:

cd ..
sudo mkdir home
cd ../home
sudo mkdir jb
cd jb
sudo mkdir scripts
cd scripts
sudo nano /home/jb/scripts/update

Type this;

#!/bin/bash
apt-get update ; apt-get -y upgrade ; apt-get -y dist-upgrade ; apt-get clean ; apt-get -y autoremove ; reboot

Save an exit. Then type:

sudo crontab -e

At the bottom add the following text;

0 3 * * * sudo bash /home/jb/scripts/update

That should auto update your device at 3am every day. I would suggest removing the restart line if you don’t want to chance it. I have gone completely manual for updates after receiving a few that caused issues upon a restart.