contrib: add Mac OS X support files
launchd plist files for chronyd and logrotation. shell script for logrotation README file with detailed installation instructions
This commit is contained in:
parent
7c4db99d44
commit
794a1e6cfe
4 changed files with 189 additions and 0 deletions
103
contrib/bryan_christianson_1/README.txt
Normal file
103
contrib/bryan_christianson_1/README.txt
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
Notes for installing chrony on MacOS X
|
||||||
|
Author: Bryan Christianson (bryan@whatroute.net)
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
These files are for those admins/users who would prefer to install chrony
|
||||||
|
from the source distribution and are intended as guidelines rather than
|
||||||
|
being definitive. They can be edited with a plain text editor, such as
|
||||||
|
vi, emacs or your favourite IDE (xcode)
|
||||||
|
|
||||||
|
It is assumed you are comfortable with installing software from the
|
||||||
|
terminal command line and know how to use sudo to acquire root access.
|
||||||
|
|
||||||
|
If you are not familiar with the MacOS X command line then
|
||||||
|
please consider using ChronyControl from http://whatroute.net/chronycontrol.html
|
||||||
|
|
||||||
|
ChronyControl provides a gui wrapper for installing these files and sets the
|
||||||
|
necessary permissions on each file.
|
||||||
|
|
||||||
|
|
||||||
|
Install the chrony software
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
You will need xcode and the commandline additions to build and install chrony.
|
||||||
|
These can be obtained from Apple's website via the App Store.
|
||||||
|
|
||||||
|
cd to the chrony directory
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
chrony is now installed in default locations (/usr/local/sbin/chronyd,
|
||||||
|
/usr/local/bin/chronyc)
|
||||||
|
|
||||||
|
Create a chrony.conf file - see the chrony website for details
|
||||||
|
|
||||||
|
The support files here assume the following directives are specified in the
|
||||||
|
chrony.conf file
|
||||||
|
|
||||||
|
keyfile /etc/chrony.d/chrony.keys
|
||||||
|
driftfile /var/db/chrony/chrony.drift
|
||||||
|
bindcmdaddress /var/db/chrony/chronyd.sock
|
||||||
|
logdir /var/log/chrony
|
||||||
|
dumpdir /var/db/chrony
|
||||||
|
|
||||||
|
Install this file as /etc/chrony.d/chrony.conf and create
|
||||||
|
the directories specified in the above directives if they don't exist.
|
||||||
|
You will need root permissions to create the directories.
|
||||||
|
|
||||||
|
|
||||||
|
Running chronyd
|
||||||
|
---------------
|
||||||
|
At this point chronyd *could* be run as a daemon. Apple discourage running
|
||||||
|
daemons and their preferred method uses the launchd facility. The
|
||||||
|
support files here provide a launchd configuration file for chronyd and also
|
||||||
|
a shell script and launchd configuration file to rotate the chronyd logs on a daily basis.
|
||||||
|
|
||||||
|
|
||||||
|
Support files
|
||||||
|
-------------
|
||||||
|
Dates and sizes may differ
|
||||||
|
-rw-r--r-- 1 yourname staff 2084 4 Aug 22:54 README.txt
|
||||||
|
-rwxr-xr-x 1 yourname staff 676 4 Aug 21:18 chronylogrotate.sh
|
||||||
|
-rw-r--r-- 1 yourname staff 543 18 Jul 20:10 org.tuxfamily.chronyc.plist
|
||||||
|
-rw-r--r-- 1 yourname staff 511 19 Jun 18:30 org.tuxfamily.chronyd.plist
|
||||||
|
|
||||||
|
If you have used chrony support directories other than those suggested, you
|
||||||
|
will need to edit each file and make the appropriate changes.
|
||||||
|
|
||||||
|
|
||||||
|
Installing the support files
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
1. chronylogrotate.sh
|
||||||
|
This is a simple shell script that deletes old log files. Unfortunately because
|
||||||
|
of the need to run chronyc, the standard MacOS X logrotation does not work with
|
||||||
|
chrony logs.
|
||||||
|
|
||||||
|
This script runs on a daily basis under control of launchd and should be
|
||||||
|
installed in the /usr/local/bin directory
|
||||||
|
|
||||||
|
sudo cp chronylogrotate.sh /usr/local/bin
|
||||||
|
sudo chmod +x /usr/local/bin/chronylogrotate.sh
|
||||||
|
sudo chown root:wheel /usr/local/bin/chronylogrotate.sh
|
||||||
|
|
||||||
|
|
||||||
|
2. org.tuxfamily.chronyc.plist
|
||||||
|
This file is the launchd plist that runs logrotation each day. You may
|
||||||
|
wish to edit this file to change the time of day at which the rotation
|
||||||
|
will run, currently 04:05 am
|
||||||
|
|
||||||
|
sudo cp org.tuxfamily.chronyc.plist /Library/LaunchDaemons
|
||||||
|
sudo chown root:wheel /Library/LaunchDaemons/org.tuxfamily.chronyc.plist
|
||||||
|
sudo chmod 0644 /Library/LaunchDaemons/org.tuxfamily.chronyc.plist
|
||||||
|
sudo launchctl load -w /Library/LaunchDaemons/org.tuxfamily.chronyc.plist
|
||||||
|
|
||||||
|
|
||||||
|
3. org.tuxfamily.chronyd.plist
|
||||||
|
This file is the launchd plist that runs chronyd when the Macintosh starts.
|
||||||
|
|
||||||
|
sudo cp org.tuxfamily.chronyd.plist /Library/LaunchDaemons
|
||||||
|
sudo chown root:wheel /Library/LaunchDaemons/org.tuxfamily.chronyd.plist
|
||||||
|
sudo chmod 0644 /Library/LaunchDaemons/org.tuxfamily.chronyd.plist
|
||||||
|
sudo launchctl load -w /Library/LaunchDaemons/org.tuxfamily.chronyd.plist
|
45
contrib/bryan_christianson_1/chronylogrotate.sh
Executable file
45
contrib/bryan_christianson_1/chronylogrotate.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# chronylogrotate.sh
|
||||||
|
# ChronyControl
|
||||||
|
#
|
||||||
|
# Created by Bryan Christianson on 12/07/15.
|
||||||
|
#
|
||||||
|
|
||||||
|
LOGDIR=/var/log/chrony
|
||||||
|
|
||||||
|
if [ ! -e "$LOGDIR" ]; then
|
||||||
|
echo "missing directory: $LOGDIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $LOGDIR
|
||||||
|
|
||||||
|
rotate () {
|
||||||
|
prefix=$1
|
||||||
|
|
||||||
|
rm -f $prefix.log.10
|
||||||
|
|
||||||
|
for (( count=9; count>= 0; count-- ))
|
||||||
|
do
|
||||||
|
next=$(( $count+1 ))
|
||||||
|
if [ -f $prefix.log.$count ]; then
|
||||||
|
mv $prefix.log.$count $prefix.log.$next
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -f $prefix.log ]; then
|
||||||
|
mv $prefix.log $prefix.log.0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
rotate measurements
|
||||||
|
rotate statistics
|
||||||
|
rotate tracking
|
||||||
|
|
||||||
|
#
|
||||||
|
# signal chronyd via chronyc
|
||||||
|
|
||||||
|
/usr/local/bin/chronyc -a -f /etc/chrony.d/chrony.conf cyclelogs > /dev/null
|
||||||
|
|
||||||
|
exit $?
|
22
contrib/bryan_christianson_1/org.tuxfamily.chronyc.plist
Normal file
22
contrib/bryan_christianson_1/org.tuxfamily.chronyc.plist
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>org.tuxfamily.logrotate</string>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<false/>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/bin/sh</string>
|
||||||
|
<string>/usr/local/bin/chronylogrotate.sh</string>
|
||||||
|
</array>
|
||||||
|
<key>StartCalendarInterval</key>
|
||||||
|
<dict>
|
||||||
|
<key>Minute</key>
|
||||||
|
<integer>5</integer>
|
||||||
|
<key>Hour</key>
|
||||||
|
<integer>4</integer>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
19
contrib/bryan_christianson_1/org.tuxfamily.chronyd.plist
Normal file
19
contrib/bryan_christianson_1/org.tuxfamily.chronyd.plist
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>org.tuxfamily.chronyd</string>
|
||||||
|
<key>Program</key>
|
||||||
|
<string>/usr/local/sbin/chronyd</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>chronyd</string>
|
||||||
|
<string>-n</string>
|
||||||
|
<string>-f</string>
|
||||||
|
<string>/private/etc/chrony.d/chrony.conf</string>
|
||||||
|
</array>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Loading…
Reference in a new issue