Skip to content

Instantly share code, notes, and snippets.

@fishdust
Forked from darcyliu/centos7_timechine.sh
Last active August 23, 2018 01:39
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fishdust/1a1b39b33d84c7acf7759cbca2e4965d to your computer and use it in GitHub Desktop.
Save fishdust/1a1b39b33d84c7acf7759cbca2e4965d to your computer and use it in GitHub Desktop.
Install Time Machine service on CentOS 7
# Install AFP server on CentOS 7
# http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.7_SRPM_for_Fedora_and_CentOS
# http://confoundedtech.blogspot.com/2011/07/draft-draft-ubuntu-as-apple-time.html
yum install -y rpm-build gcc make wget
# install netatalk
yum install -y avahi-devel cracklib-devel dbus-devel dbus-glib-devel libacl-devel libattr-devel libdb-devel libevent-devel libgcrypt-devel krb5-devel mysql-devel openldap-devel openssl-devel pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel
yum install -y bison docbook-style-xsl flex dconf
wget https://s3-us-west-2.amazonaws.com/fishdust/netatalk/netatalk-3.1.8-0.1.4.fc24.src.rpm
# shasum -a 256 netatalk-3.1.8-0.1.4.fc24.src.rpm
# 81f6030f11843338143f2be6647df155ab87250544fff988e19c10eac1156bd6 netatalk-3.1.8-0.1.4.fc24.src.rpm
rpm -ihv netatalk-3.1.8-0.1.4.fc24.src.rpm
rpmbuild -bb ~/rpmbuild/SPECS/netatalk.spec
rpm -ivh ~/rpmbuild/RPMS/x86_64/netatalk-3.1.8-0.1.4.el7.centos.x86_64.rpm
# configuration
cat >> /etc/avahi/services/afpd.service << EOF
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
EOF
cat >> /etc/netatalk/afp.conf << EOF
[Time Machine]
path = /opt/timemachine
valid users = tmbackup
time machine = yes
mimic model = RackMac
EOF
cat >> /etc/netatalk/afpd.conf << EOF
- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh
EOF
# create user "tmbackup" and specify password
useradd tmbackup
passwd tmbackup
mkdir -p /opt/timemachine
chown tmbackup:tmbackup /opt/timemachine
cat >> /etc/netatalk/AppleVolumes.default << EOF
/opt/timemachine TimeMachine allow:tmbackup options:usedots,upriv,tm dperm:0775 fperm:0660 cnidscheme:dbd volsizelimit:200000
EOF
cat >> /etc/nsswitch.conf << EOF
hosts: files mdns4_minimal dns mdns mdns4
EOF
firewall-cmd --zone=public --permanent --add-port=548/tcp
firewall-cmd --zone=public --permanent --add-port=548/udp
firewall-cmd --zone=public --permanent --add-port=5353/tcp
firewall-cmd --zone=public --permanent --add-port=5353/udp
firewall-cmd --zone=public --permanent --add-port=49152/tcp
firewall-cmd --zone=public --permanent --add-port=49152/udp
firewall-cmd --zone=public --permanent --add-port=52883/tcp
firewall-cmd --zone=public --permanent --add-port=52883/udp
firewall-cmd --reload
systemctl enable avahi-daemon
systemctl enable netatalk
systemctl start avahi-daemon
systemctl start netatalk
# you should now be able to connect to the AFP share from the network
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment