diff --git a/.etckeeper b/.etckeeper index 3f3275ca..0179dc76 100755 --- a/.etckeeper +++ b/.etckeeper @@ -36,6 +36,7 @@ mkdir -p './network/interfaces.d' mkdir -p './nginx/conf.d' mkdir -p './nginx/modules-available' mkdir -p './opt' +mkdir -p './parallel' mkdir -p './perl/CPAN' mkdir -p './rsyslog.d' mkdir -p './security/limits.d' @@ -209,6 +210,7 @@ maybe chmod 0644 'cowpoke.conf' maybe chmod 0755 'cron.d' maybe chmod 0644 'cron.d/.placeholder' maybe chmod 0644 'cron.d/certbot' +maybe chmod 0644 'cron.d/sysstat' maybe chmod 0755 'cron.daily' maybe chmod 0644 'cron.daily/.placeholder' maybe chmod 0755 'cron.daily/apt-compat' @@ -221,6 +223,7 @@ maybe chmod 0755 'cron.daily/locate' maybe chmod 0755 'cron.daily/logrotate' maybe chmod 0755 'cron.daily/man-db' maybe chmod 0755 'cron.daily/passwd' +maybe chmod 0755 'cron.daily/sysstat' maybe chmod 0755 'cron.hourly' maybe chmod 0644 'cron.hourly/.placeholder' maybe chmod 0755 'cron.hourly/fake-hwclock' @@ -271,6 +274,7 @@ maybe chmod 0644 'default/raspberrypi-kernel' maybe chmod 0644 'default/rsync' maybe chmod 0644 'default/rsyslog' maybe chmod 0644 'default/ssh' +maybe chmod 0644 'default/sysstat' maybe chmod 0644 'default/triggerhappy' maybe chmod 0644 'default/useradd' maybe chmod 0644 'deluser.conf' @@ -781,6 +785,7 @@ maybe chmod 0755 'init.d/screen-cleanup' maybe chmod 0755 'init.d/selinux-autorelabel' maybe chmod 0755 'init.d/ssh' maybe chmod 0755 'init.d/sudo' +maybe chmod 0755 'init.d/sysstat' maybe chmod 0755 'init.d/triggerhappy' maybe chmod 0755 'init.d/udev' maybe chmod 0755 'init.d/vnstat' @@ -2009,6 +2014,7 @@ maybe chmod 0644 'pam.d/su' maybe chmod 0644 'pam.d/su-l' maybe chmod 0644 'pam.d/sudo' maybe chmod 0644 'pam.d/systemd-user' +maybe chmod 0755 'parallel' maybe chmod 0644 'passwd' maybe chmod 0644 'passwd-' maybe chmod 0644 'paxctld.conf' @@ -2162,6 +2168,9 @@ maybe chmod 0755 'sysctl.d' maybe chmod 0644 'sysctl.d/98-rpi.conf' maybe chmod 0644 'sysctl.d/README.sysctl' maybe chmod 0644 'sysctl.d/protect-links.conf' +maybe chmod 0755 'sysstat' +maybe chmod 0644 'sysstat/sysstat' +maybe chmod 0644 'sysstat/sysstat.ioconf' maybe chmod 0755 'systemd' maybe chmod 0644 'systemd/journald.conf' maybe chmod 0644 'systemd/logind.conf' diff --git a/alternatives/sar b/alternatives/sar new file mode 120000 index 00000000..54986415 --- /dev/null +++ b/alternatives/sar @@ -0,0 +1 @@ +/usr/bin/sar.sysstat \ No newline at end of file diff --git a/alternatives/sar.1.gz b/alternatives/sar.1.gz new file mode 120000 index 00000000..06a4f21b --- /dev/null +++ b/alternatives/sar.1.gz @@ -0,0 +1 @@ +/usr/share/man/man1/sar.sysstat.1.gz \ No newline at end of file diff --git a/cron.d/sysstat b/cron.d/sysstat new file mode 100644 index 00000000..66325cef --- /dev/null +++ b/cron.d/sysstat @@ -0,0 +1,9 @@ +# The first element of the path is a directory where the debian-sa1 +# script is located +PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin + +# Activity reports every 10 minutes everyday +5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 + +# Additional run at 23:59 to rotate the statistics file +59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2 diff --git a/cron.daily/sysstat b/cron.daily/sysstat new file mode 100755 index 00000000..7c7a5dff --- /dev/null +++ b/cron.daily/sysstat @@ -0,0 +1,18 @@ +#!/bin/sh +# Generate a daily summary of process accounting. Since this will probably +# get kicked off in the morning, it is run against the previous day data. + +# our configuration file +DEFAULT=/etc/default/sysstat +# default settings, overriden in the above file +ENABLED=false + +[ ! -x /usr/lib/sysstat/sa2 ] && exit 0 + +# read our config +[ -r "$DEFAULT" ] && . "$DEFAULT" + +[ "$ENABLED" = "true" ] || exit 0 + +exec /usr/lib/sysstat/sa2 -A + diff --git a/default/sysstat b/default/sysstat new file mode 100644 index 00000000..dfeb7e01 --- /dev/null +++ b/default/sysstat @@ -0,0 +1,10 @@ +# +# Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat +# and /etc/cron.daily/sysstat files +# + +# Should sadc collect system activity informations? Valid values +# are "true" and "false". Please do not put other values, they +# will be overwritten by debconf! +ENABLED="false" + diff --git a/init.d/sysstat b/init.d/sysstat new file mode 100755 index 00000000..a4a9fabc --- /dev/null +++ b/init.d/sysstat @@ -0,0 +1,53 @@ +#! /bin/sh +# vim:ft=sh:et +### BEGIN INIT INFO +# Provides: sysstat +# Required-Start: $remote_fs $local_fs $syslog +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: +# Short-Description: Start/stop sysstat's sadc +# Description: Sysstat contains system performance tools for Linux +# The init file runs the sadc command in order to write +# the "LINUX RESTART" mark to the daily data file +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/lib/sysstat/debian-sa1 +NAME=sadc +DESC="the system activity data collector" + +test -f "$DAEMON" || exit 0 +umask 022 + +set -e +status=0 + +. /lib/lsb/init-functions + +case "$1" in + start|restart|reload|force-reload) + if [ "$ENABLED" = "true" ] ; then + log_daemon_msg "Starting $DESC" "$NAME" + start-stop-daemon --start --quiet --exec $DAEMON -- --boot || status=$? + log_end_msg $status + fi + ;; + stop) + ;; + status) + if [ "$ENABLED" = "true" ] ; then + log_success_msg "sadc cron jobs are enabled" + exit 0 + else + log_failure_msg "sadc cron jobs are disabled" + exit 3 + fi + ;; + *) + log_failure_msg "Usage: $0 {start|stop|restart|reload|force-reload|status}" + exit 1 + ;; +esac + +exit $status diff --git a/rc2.d/S01sysstat b/rc2.d/S01sysstat new file mode 120000 index 00000000..df83d78c --- /dev/null +++ b/rc2.d/S01sysstat @@ -0,0 +1 @@ +../init.d/sysstat \ No newline at end of file diff --git a/rc3.d/S01sysstat b/rc3.d/S01sysstat new file mode 120000 index 00000000..df83d78c --- /dev/null +++ b/rc3.d/S01sysstat @@ -0,0 +1 @@ +../init.d/sysstat \ No newline at end of file diff --git a/rc4.d/S01sysstat b/rc4.d/S01sysstat new file mode 120000 index 00000000..df83d78c --- /dev/null +++ b/rc4.d/S01sysstat @@ -0,0 +1 @@ +../init.d/sysstat \ No newline at end of file diff --git a/rc5.d/S01sysstat b/rc5.d/S01sysstat new file mode 120000 index 00000000..df83d78c --- /dev/null +++ b/rc5.d/S01sysstat @@ -0,0 +1 @@ +../init.d/sysstat \ No newline at end of file diff --git a/sysstat/sysstat b/sysstat/sysstat new file mode 100644 index 00000000..d7d80843 --- /dev/null +++ b/sysstat/sysstat @@ -0,0 +1,31 @@ +# sysstat configuration file. See sysstat(5) manual page. + +# How long to keep log files (in days). +# Used by sa2(8) script +# If value is greater than 28, then use sadc's option -D to prevent older +# data files from being overwritten. See sadc(8) and sysstat(5) manual pages. +HISTORY=7 + +# Compress (using xz, gzip or bzip2) sa and sar files older than (in days): +COMPRESSAFTER=10 + +# Parameters for the system activity data collector (see sadc(8) manual page) +# which are used for the generation of log files. +# By default contains the `-S DISK' option responsible for generating disk +# statisitcs. Use `-S XALL' to collect all available statistics. +SADC_OPTIONS="-S DISK" + +# Directory where sa and sar files are saved. The directory must exist. +SA_DIR=/var/log/sysstat + +# Compression program to use. +ZIP="xz" + +# By default sa2 script generates yesterday's summary, since the cron job +# usually runs right after midnight. If you want sa2 to generate the summary +# of the same day (for example when cron job runs at 23:53) set this variable. +#YESTERDAY=no + +# By default sa2 script generates reports files (the so called sarDD files). +# Set this variable to false to disable reports generation. +#REPORTS=false diff --git a/sysstat/sysstat.ioconf b/sysstat/sysstat.ioconf new file mode 100644 index 00000000..23376c43 --- /dev/null +++ b/sysstat/sysstat.ioconf @@ -0,0 +1,273 @@ +# +# sysstat.ioconf +# +# Copyright (C) 2004, Red Hat, Inc. +# +# Maintained by Sebastien Godard (sysstat [at] orange.fr) +# +# This file gives iostat and sadc a clue about how to find whole +# disk devices in /proc/partitions and /proc/diskstats +# Authoritative source is: linux/Documentation/devices.txt +# +# line format, general record: +# major:name:ctrlpre:ctrlno:devfmt:devcnt:partpre:partcnt:description +# +# major: major # for device +# name: base of device name +# ctrlpre: string to use in generating controller designators +# eg: the c in c0d2p6, decimal formatting implied +# '*' means none or irrelevant +# 'x': exception... record contains a specific name +# for a specific minor #, stored in the ctrlno field +# ctrlno: which controller of this type is this +# devfmt: type of device naming convention +# a: alpha: xxa, xxb, ... xxaa, xxab, ... xxzz +# %string: string to use in generating drive designators, +# eg: the 'd' in c0d2p6 , decimal formatting implied +# d: no special translations (decimal formatting) +# devcnt: how many whole devs per major number +# partpre: appended to whole dev before part designator +# eg. the p in c0d2p6, decimal formatting implied +# '*' means none +# partcnt: number of partitions per volume +# or minor # for exception records +# description: informative text +# +# line format, indirect record: +# major:base_major:ctrlno[:[desc]] +# +# major: major number of the device +# base_major: major number of the template for this type, +# 0 for not supported +# ctrlno: controller number of this type +# desc: controller-specific description +# if absent the desc from base_major will be +# used in sprintf( buf, desc, ctrlno ) + + +1:ram:*:0:d:256:*:1:RAM disks (ram0..ram255) +1:initrd:x:250:d:256:*:1:Initial RAM Disk (initrd) + +#2:0:0:Floppy Devices +2:fd:*:0:d:4:*:1:Floppy Devices fd0,fd1,fd2,fd3 + +3:hd:*:0:a:2:*:64:IDE - Controller %d +22:3:1: +33:3:2: +34:3:3: +56:3:4: +57:3:5: +88:3:6: +89:3:7: +90:3:8: +91:3:9: + +#4:0:0:NODEV +#5:0:0:NODEV +#6:0:0:NODEV +7:loop:*:0:d:256:*:1:Loop Devices + +8:sd:*:0:a:16:*:16:SCSI - Controller %d +65:8:1: +66:8:2: +67:8:3: +68:8:4: +69:8:5: +70:8:6: +71:8:7: +128:8:8: +129:8:9: +130:8:10: +131:8:11: +132:8:12: +133:8:13: +134:8:14: +135:8:15: + +9:md:*:0:d:256:*:1:Metadisk (Software RAID) devices (md0..md255) + +#10:0:0:NODEV + +#11:sr:*:0:d:256:*:1:CDROM - CDROM (sr0..sr255) (deprecated) +11:scd:*:0:d:256:*:1:CDROM - CDROM (scd0..scd255) + +#12:0:0:MSCDEX CD-ROM Callback + +13:xd:*:0:a:2:*:64:8-bit MFM/RLL/IDE controller (xda, xdb) + +#14:0:0:BIOS Hard Drive Callback +#15:0:0:CDROM - Sony CDU-31A/CDU-33A +#16:0:0:CDROM - Goldstar +#17:0:0:CDROM - Optics Storage +#18:0:0:CDROM - Sanyo + +19:double:*:0:d:256:*:1:Compressed Disk (double0..double255) + +#20:0:0:CDROM - Hitachi + +21:mfm:*:0:a:2:*:64:Acorn MFM Hard Drive (mfma, mfmb) + +# 22: see IDE, dev 3 + +#23:0:0:CDROM - Mistumi Proprietary +#24:0:0:CDROM - Sony CDU-535 +#25:0:0:CDROM - Matsushita (Panasonic/Soundblaster) #1 +#26:0:1:CDROM - Matsushita (Panasonic/Soundblaster) #2 +#27:0:2:CDROM - Matsushita (Panasonic/Soundblaster) #3 +#28:0:3:CDROM - Matsushita (Panasonic/Soundblaster) #4 +# 28:0:0:! ACSI (Atari) Disk Not Supported +#29:0:0:CDROM - Aztech/Orchid/Okano/Wearnes +#30:0:0:CDROM - Philips LMS CM-205 +#31:0:0:ROM/flash Memory Card +#32:0:0:CDROM - Phillips LMS CM-206 + +# 33: See IDE, dev 3 +# 34: See IDE, dev 3 + +#35:0:0:Slow Memory RAM Disk + +36:ed:*:0:a:2:*:64:MCA ESDI Hard Disk (eda, edb) + +#37:0:0:Zorro II Ram Disk +#38:0:0:Reserved For Linux/AP+ +#39:0:0:Reserved For Linux/AP+ +#40:0:0:Syquest EZ135 Parallel Port Drive +#41:0:0:CDROM - MicroSolutions Parallel Port BackPack +#42:0:0:For DEMO Use Only + +43:nb:*:0:d:256:*:1:Network Block devices (nb0..nb255) +44:ftl:*:0:a:16:*:16:Flash Translation Layer (ftla..ftlp) +45:pd:*:0:a:4:*:16:Parallel Port IDE (pda..pdd) + +#46:0:0:CDROM - Parallel Port ATAPI + +47:pf:*:0:d:256:*:1:Parallel Port ATAPI Disk Devices (pf0..pf255) + +48:rd:/c:0:%d:32:p:8:Mylex DAC960 RAID, Controller %d +49:48:1: +50:48:2: +51:48:3: +52:48:4: +53:48:5: +54:48:6: +55:48:7: +136:48:8: +137:48:9: +138:48:10: +139:48:11: +140:48:12: +141:48:13: +142:48:14: +143:48:15: + +# 56, 57: see IDE, dev 3: + +58:lvm:*:0:d:256:*:1:Logical Volume Manager (lvm0..lvm255) + +#59:0:0:PDA Filesystem Device +#60:0:0:Local/Experimental Use +#61:0:0:Local/Experimental Use +#62:0:0:Local/Experimental Use +#63:0:0:Local/Experimental Use +#64:0:0:NODEV + +# 65..71: See SCSI, dev 8: + +72:ida/:c:0:%d:16:p:16:Compaq Intelligent Drive Array - Controller %d +73:72:1: +74:72:2: +75:72:3: +76:72:4: +77:72:5: +78:72:6: +79:72:7: + +80:i2o/hd:*:0:a:16:*:16:I2O Disk - Controller %d +81:80:1: +82:80:2: +83:80:3: +84:80:4: +85:80:5: +86:80:6: +87:80:7: + +# 88..91: see IDE, dev 3: + +#92:0:0:PPDD Encrypted Disk +#93:0:0:NAND Flash Translation Layer not supported + +94:dasd:*:0:a:64:*:4:IBM S/390 DASD Block Storage (dasda, dasdb, ...) + +#95:0:0:IBM S/390 VM/ESA Minidisk +#96:0:0:NODEV +#97:0:0:CD/DVD packed writing devices not supported + +98:ubd:*:0:d:256:*:1:User-mode Virtual Block Devices (ubd0..ubd256) + +#99:0:0:JavaStation Flash Disk +#100:0:0:NODEV + +101:amiraid/ar:*:0:d:16:p:16:AMI HyperDisk RAID (amiraid/ar0 - amiraid/ar15) + +#102:0:0:Compressed Block Device +#103:0:0:Audit Block Device + +104:cciss:/c:0:%d:16:p:16:HP SA 5xxx/6xxx (cciss) Controller %d +105:104:1: +106:104:2: +107:104:3: +108:104:4: +109:104:5: +110:104:6: +111:104:7: + +112:iseries/vd:*:0:a:32:*:8:IBM iSeries Virtual Disk (.../vda - .../vdaf) + +#113:0:0:CDROM - IBM iSeries Virtual + +# 114..159 NODEV + +120:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d + +#160:sx8/:*:0:d:8:p:32:Promise SATA SX8 Unit %d +#161:160:1: +160:carmel/:*:0:d:8:p:32:Carmel 8-port SATA Disks (carmel/0 - carmel/7) +161:160:1: + +# 162..198 UNUSED + +180:ub:*:0:a:32:p:8:USB block devices + +#199:0:0:Veritas Volume Manager (VxVM) Volumes +#200:0:0:NODEV +#201:0:0:Veritas VxVM Dynamic Multipathing Driver + +202:xvd:*:0:a:16:p:16:Xen Virtual Block Device + +# 203..230: UNUSED + +232:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d +233:232:1: +234:232:2: +235:232:3: +236:232:4: +237:232:5: +238:232:6: +239:232:7: +240:232:8: +241:232:9: +242:232:10: +243:232:11: +244:232:12: +245:232:13: +246:232:14: +247:232:15: + +# 240..254: LOCAL/Experimental + +256:rfd:*:0:a:16:*:16:Resident Flash Disk Flash Translation Layer (rfda..rfdp) + +257:ssfdc:*:0:a:8:*:8:SSFDC Flash Translation Layer filesystem (ssfdca..ssfdch) + +258:blockrom:*:0:d:256:*:1:ROM/Flash Read-Only Translation Layer (blockrom0...) + diff --git a/systemd/system/multi-user.target.wants/sysstat.service b/systemd/system/multi-user.target.wants/sysstat.service new file mode 120000 index 00000000..29e6c2d1 --- /dev/null +++ b/systemd/system/multi-user.target.wants/sysstat.service @@ -0,0 +1 @@ +/lib/systemd/system/sysstat.service \ No newline at end of file