TimeMachine backup to a Linux server

published: / last edited:

Automatically make a TimeMachine backup in the local network onto a Linux server.

This was tested on Ubuntu Server 20.04 LTS.

We first need to install netatalk and the avahi-daemon - with netatalk, we need at least version 3, so if you are not on Ubuntu (or on an older Ubuntu install), make sure you have at least version 3.

sudo apt install netatalk avahi-daemon

We then need to create a directory and a user who is allowed to access this directory (or you can use an already existing user and/or directry):

sudo useradd --no-create-home your-username
sudo mkdir /srv/timemachine
sudo chown your-username:your-usergroup /srv/timemachine

(replace your-username and your-usergroup with the username of your choice, and /srv/timemachine with the folder of your choice)

The config of netatalk is saved in /etc/netatalk/afp.conf - we update it as follows (again, replace your-username and srv/timemache with the values of your choice; your-hostname will be the server name that appears in the TimeMachine configuration of your Mac):

;
; Netatalk 3.x configuration file
;

[Global]
hostname = your-hostname
sleep time = 672
disconnect time = 672

[TimeMachine]
path = /srv/timemachine
time machine = yes
valid users = your-username
vol size limit = 700000

The vol size limit is set in MB, so 700000 will be 700 GB. Use at least as much space as your Mac disk has. Double the space is recommended to keep a history of file changes.

We then need to enable and start the avahi and netatalk daemons:

sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
sudo systemctl enable netatalk
sudo systemctl start netatalk

If you have a firewall active, you need to open ports 548, port 427 and port 4700 and then restart netatalk - for example, with ufw use these commands:

sudo ufw allow 548
sudo ufw allow 427
sudo ufw allow 4700
sudo systemctl restart netatalk

You should then be able to see the backup volume in the TimeMachine configuration; to connect, use the username/password of the unix user you created above. The Mac will run a backup every hour, if you are in the same network as your server.

(Thanks to Gerrit for the basis of these notes: Time Machine Backups auf einen Linux Server sichern)

----------
Have a comment? Drop me an email!