Auto Update

Suggestions for features and software you would like to see in DietPi, goes here.
Post Reply
Shanther
Posts: 41
Joined: Sat Mar 04, 2017 3:12 pm

Auto Update

Post by Shanther »

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.
User avatar
k-plan
Posts: 416
Joined: Sun Feb 28, 2016 5:28 pm

Re: Auto Update

Post by k-plan »

Hmmm .... have you tried something like this?

Code: Select all

root@DietPi:~# crontab -e
and edit this like:

Code: Select all

 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
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal and Bitcoin.
Shanther
Posts: 41
Joined: Sat Mar 04, 2017 3:12 pm

Re: Auto Update

Post by Shanther »

k-plan wrote:Hmmm .... have you tried something like this?

Code: Select all

root@DietPi:~# crontab -e
and edit this like:

Code: Select all

 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.

Code: Select all

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

msperl
Posts: 4
Joined: Thu Jan 05, 2017 11:01 am

Re: Auto Update

Post by msperl »

apt-get install cron-apt
All in one hassle free package.
Shanther
Posts: 41
Joined: Sat Mar 04, 2017 3:12 pm

Re: Auto Update

Post by Shanther »

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

Solution:

Code: Select all

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

Type this;

Code: Select all

#!/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:

Code: Select all

sudo crontab -e
At the bottom add the following text;

Code: Select all

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.
Post Reply