X7ROOT File Manager
Current Path:
/usr/sbin
usr
/
sbin
/
📁
..
📄
accessdb
(11.55 KB)
📄
addgnupghome
(3.05 KB)
📄
addpart
(19.69 KB)
📄
adduser
(134.39 KB)
📄
agetty
(48.48 KB)
📄
alternatives
(27.61 KB)
📄
anacron
(35.52 KB)
📄
apachectl
(4.31 KB)
📄
applygnupgdefaults
(2.21 KB)
📄
arp
(63.98 KB)
📄
arpd
(52.98 KB)
📄
arping
(23.19 KB)
📄
atd
(27.17 KB)
📄
atrun
(67 B)
📄
audispd
(39.75 KB)
📄
auditctl
(39.56 KB)
📄
auditd
(125.65 KB)
📄
augenrules
(3.7 KB)
📄
aureport
(105.39 KB)
📄
ausearch
(109.8 KB)
📄
authconfig
(43.49 KB)
📄
authconfig-tui
(43.49 KB)
📄
autrace
(15.49 KB)
📄
avcstat
(11.25 KB)
📄
badblocks
(27.69 KB)
📄
biosdecode
(24.15 KB)
📄
blkdeactivate
(15.97 KB)
📄
blkdiscard
(23.84 KB)
📄
blkid
(77.92 KB)
📄
blkmapd
(43.81 KB)
📄
blockdev
(32.2 KB)
📄
bridge
(77.61 KB)
📄
btrfs
(690.59 KB)
📄
btrfs-convert
(378.62 KB)
📄
btrfs-debug-tree
(354.23 KB)
📄
btrfs-find-root
(346.22 KB)
📄
btrfs-image
(374.63 KB)
📄
btrfs-map-logical
(350.27 KB)
📄
btrfs-select-super
(346.2 KB)
📄
btrfs-zero-log
(346.2 KB)
📄
btrfsck
(690.59 KB)
📄
btrfstune
(350.24 KB)
📄
build-locale-archive
(860.52 KB)
📄
cacertdir_rehash
(644 B)
📄
capsh
(19.43 KB)
📄
cbq
(32.73 KB)
📄
cfdisk
(71.37 KB)
📄
chcpu
(23.7 KB)
📄
chgpasswd
(64.1 KB)
📄
chkconfig
(40.22 KB)
📄
chpasswd
(55.88 KB)
📄
chronyd
(263.08 KB)
📄
chroot
(32.48 KB)
📄
clock
(48.44 KB)
📄
clockdiff
(19.04 KB)
📄
consoletype
(6.95 KB)
📄
convertquota
(70.88 KB)
📄
cracklib-check
(7.04 KB)
📄
cracklib-format
(246 B)
📄
cracklib-packer
(11.06 KB)
📄
cracklib-unpacker
(7.02 KB)
📄
create-cracklib-dict
(990 B)
📄
crond
(68.48 KB)
📄
ctrlaltdel
(11.2 KB)
📄
ctstat
(20.09 KB)
📄
ddns-confgen
(19.44 KB)
📄
debugfs
(120.64 KB)
📄
delpart
(19.69 KB)
📄
depmod
(143.24 KB)
📄
devlink
(64.72 KB)
📄
dhclient
(414.34 KB)
📄
dhclient-script
(30.38 KB)
📄
dmfilemapd
(19.16 KB)
📄
dmidecode
(120.2 KB)
📄
dmsetup
(149.2 KB)
📄
dmstats
(149.2 KB)
📄
dnssec-checkds
(922 B)
📄
dnssec-coverage
(924 B)
📄
dnssec-dsfromkey
(56.6 KB)
📄
dnssec-importkey
(52.59 KB)
📄
dnssec-keyfromlabel
(60.52 KB)
📄
dnssec-keygen
(64.55 KB)
📄
dnssec-keymgr
(920 B)
📄
dnssec-revoke
(48.46 KB)
📄
dnssec-settime
(56.52 KB)
📄
dnssec-signzone
(105.71 KB)
📄
dnssec-verify
(48.46 KB)
📄
dovecot
(370.66 KB)
📄
dovecot_cpshutdown
(3.27 KB)
📄
dracut
(55.83 KB)
📄
dumpe2fs
(23.62 KB)
📄
e2freefrag
(11.15 KB)
📄
e2fsck
(250.55 KB)
📄
e2image
(27.85 KB)
📄
e2label
(69.41 KB)
📄
e2undo
(11.32 KB)
📄
e4defrag
(23.55 KB)
📄
eapol_test
(1.77 MB)
📄
edquota
(83.09 KB)
📄
ether-wake
(73.26 KB)
📄
ethtool
(293.87 KB)
📄
exicyclog
(11.01 KB)
📄
exigrep
(10.44 KB)
📄
exim
(1.33 MB)
📄
exim_checkaccess
(4.73 KB)
📄
exim_dbmbuild
(82.09 KB)
📄
exim_dumpdb
(134.47 KB)
📄
exim_fixdb
(168.22 KB)
📄
exim_lock
(64.66 KB)
📄
exim_tidydb
(142.8 KB)
📄
eximstats
(148.01 KB)
📄
exinext
(8.02 KB)
📄
exiqgrep
(5.46 KB)
📄
exiqsumm
(5.07 KB)
📄
exiwhat
(4.32 KB)
📄
exportfs
(76.91 KB)
📄
faillock
(15.02 KB)
📄
fcgistarter
(23.85 KB)
📄
fdformat
(11.27 KB)
📄
fdisk
(195.8 KB)
📄
filefrag
(15.23 KB)
📄
findfs
(11.2 KB)
📄
fixfiles
(11.03 KB)
📄
fsck
(32.12 KB)
📄
fsck.btrfs
(1.16 KB)
📄
fsck.cramfs
(19.57 KB)
📄
fsck.ext2
(250.55 KB)
📄
fsck.ext3
(250.55 KB)
📄
fsck.ext4
(250.55 KB)
📄
fsck.minix
(73.32 KB)
📄
fsck.xfs
(433 B)
📄
fsfreeze
(11.23 KB)
📄
fstrim
(40.59 KB)
📄
fuser
(32.34 KB)
📄
genhomedircon
(23.77 KB)
📄
genhostid
(6.94 KB)
📄
genl
(52.81 KB)
📄
genl-ctrl-list
(11.27 KB)
📄
genrandom
(11.16 KB)
📄
getcap
(11.13 KB)
📄
getenforce
(7.01 KB)
📄
getpcaps
(7.07 KB)
📄
getsebool
(11.13 KB)
📄
glibc_post_upgrade.x86_64
(772.05 KB)
📄
groupadd
(85.65 KB)
📄
groupdel
(77.38 KB)
📄
groupmems
(55.97 KB)
📄
groupmod
(85.66 KB)
📄
grpck
(59.93 KB)
📄
grpconv
(51.73 KB)
📄
grpunconv
(51.73 KB)
📄
grub2-bios-setup
(1.04 MB)
📄
grub2-get-kernel-settings
(2.08 KB)
📄
grub2-install
(1.29 MB)
📄
grub2-macbless
(1.02 MB)
📄
grub2-mkconfig
(7.63 KB)
📄
grub2-ofpathname
(225.5 KB)
📄
grub2-probe
(1.04 MB)
📄
grub2-reboot
(4 KB)
📄
grub2-rpm-sort
(262.53 KB)
📄
grub2-set-default
(3.46 KB)
📄
grub2-setpassword
(2.96 KB)
📄
grub2-sparc64-setup
(1.04 MB)
📄
grubby
(71.27 KB)
📄
gss-server
(23.13 KB)
📄
gssproxy
(130.64 KB)
📄
halt
(704.8 KB)
📄
hardlink
(15.29 KB)
📄
htcacheclean
(78.45 KB)
📄
httpd
(2.31 MB)
📄
hwclock
(48.44 KB)
📄
iconvconfig
(22.15 KB)
📄
iconvconfig.x86_64
(22.15 KB)
📄
ifcfg
(2.99 KB)
📄
ifconfig
(80.05 KB)
📄
ifdown
(1.61 KB)
📄
ifenslave
(19.74 KB)
📄
ifstat
(40.6 KB)
📄
ifup
(4.89 KB)
📄
init
(1.56 MB)
📄
insmod
(143.24 KB)
📄
install-info
(110.42 KB)
📄
installkernel
(2.69 KB)
📄
intel-microcode2ucode
(11.1 KB)
📄
ip
(459.59 KB)
📄
ip6tables
(91.52 KB)
📄
ip6tables-restore
(91.52 KB)
📄
ip6tables-save
(91.52 KB)
📄
ipmaddr
(19.33 KB)
📄
iptables
(91.52 KB)
📄
iptables-restore
(91.52 KB)
📄
iptables-save
(91.52 KB)
📄
iptunnel
(23.33 KB)
📄
irqbalance
(48.5 KB)
📄
isc-hmac-fixup
(11.2 KB)
📄
kexec
(166.06 KB)
📄
key.dns_resolver
(19.45 KB)
📄
killall5
(23.17 KB)
📄
kpartx
(39.47 KB)
📄
lchage
(15.41 KB)
📄
ldattach
(27.93 KB)
📄
ldconfig
(952.08 KB)
📄
lgroupadd
(11.28 KB)
📄
lgroupdel
(11.26 KB)
📄
lgroupmod
(15.44 KB)
📄
lid
(15.4 KB)
📄
lnewusers
(15.46 KB)
📄
lnstat
(20.09 KB)
📄
load_policy
(10.97 KB)
📄
logrotate
(68.61 KB)
📄
logsave
(11.27 KB)
📄
losetup
(82.45 KB)
📄
lpasswd
(15.5 KB)
📄
lshw
(895.18 KB)
📄
lsmod
(143.24 KB)
📄
lsof
(150.57 KB)
📄
luseradd
(15.38 KB)
📄
luserdel
(11.3 KB)
📄
lusermod
(19.43 KB)
📄
lwresd
(768.04 KB)
📄
makedumpfile
(376.52 KB)
📄
matchpathcon
(11.19 KB)
📄
mii-diag
(20.08 KB)
📄
mii-tool
(19.51 KB)
📄
mkdict
(246 B)
📄
mkdumprd
(13.99 KB)
📄
mke2fs
(94.08 KB)
📄
mkfs
(11.25 KB)
📄
mkfs.btrfs
(366.45 KB)
📄
mkfs.cramfs
(36.16 KB)
📄
mkfs.ext2
(94.08 KB)
📄
mkfs.ext3
(94.08 KB)
📄
mkfs.ext4
(94.08 KB)
📄
mkfs.minix
(36.27 KB)
📄
mkfs.xfs
(359.8 KB)
📄
mkhomedir_helper
(19.05 KB)
📄
mklost+found
(11.11 KB)
📄
mkswap
(69.64 KB)
📄
modinfo
(143.24 KB)
📄
modprobe
(143.24 KB)
📄
modsec-sdbm-util
(22.17 KB)
📄
mount.nfs
(114.68 KB)
📄
mount.nfs4
(114.68 KB)
📄
mountstats
(40.59 KB)
📄
mysqld
(244.14 MB)
📄
mysqld-debug
(165.52 MB)
📄
named
(768.04 KB)
📄
named-checkconf
(32.25 KB)
📄
named-checkzone
(32.06 KB)
📄
named-compilezone
(32.06 KB)
📄
named-journalprint
(11.13 KB)
📄
nameif
(15.32 KB)
📄
netreport
(10.96 KB)
📄
new-kernel-pkg
(24.96 KB)
📄
newusers
(93.45 KB)
📄
nfsdcltrack
(40.11 KB)
📄
nfsidmap
(19.32 KB)
📄
nfsiostat
(23.64 KB)
📄
nfsstat
(29.84 KB)
📄
nl-class-add
(11.7 KB)
📄
nl-class-delete
(11.55 KB)
📄
nl-class-list
(11.48 KB)
📄
nl-classid-lookup
(11.29 KB)
📄
nl-cls-add
(11.76 KB)
📄
nl-cls-delete
(11.68 KB)
📄
nl-cls-list
(11.58 KB)
📄
nl-link-list
(11.52 KB)
📄
nl-pktloc-lookup
(11.36 KB)
📄
nl-qdisc-add
(11.6 KB)
📄
nl-qdisc-delete
(11.54 KB)
📄
nl-qdisc-list
(11.63 KB)
📄
nologin
(7.01 KB)
📄
nscd
(180.02 KB)
📄
nsec3hash
(11.13 KB)
📄
nstat
(23.88 KB)
📄
osd_login
(2.55 KB)
📄
ownership
(15.04 KB)
📄
packer
(11.06 KB)
📄
pam_console_apply
(39.69 KB)
📄
pam_tally2
(15.05 KB)
📄
pam_timestamp_check
(10.97 KB)
📄
paperconfig
(4.07 KB)
📄
parted
(77.22 KB)
📄
partprobe
(11.23 KB)
📄
partx
(86.55 KB)
📄
pdns_server
(98.68 MB)
📄
pidof
(23.17 KB)
📄
ping6
(64.63 KB)
📄
pivot_root
(11.19 KB)
📄
plipconfig
(11.06 KB)
📄
poweroff
(704.8 KB)
📄
ppp-watch
(23.2 KB)
📄
pwck
(51.71 KB)
📄
pwconv
(47.57 KB)
📄
pwhistory_helper
(15.44 KB)
📄
pwunconv
(47.59 KB)
📄
quot
(70.66 KB)
📄
quotacheck
(107.29 KB)
📄
quotaoff
(75.03 KB)
📄
quotaon
(75.03 KB)
📄
quotastats
(14.03 KB)
📄
rdisc
(23.17 KB)
📄
rdma
(73.42 KB)
📄
readprofile
(15.46 KB)
📄
reboot
(704.8 KB)
📄
repquota
(75.16 KB)
📄
request-key
(19.41 KB)
📄
resize2fs
(48.41 KB)
📄
resizepart
(32.36 KB)
📄
restorecon
(27.16 KB)
📄
rmmod
(143.24 KB)
📄
rndc
(35.88 KB)
📄
rndc-confgen
(19.44 KB)
📄
rotatelogs
(53 KB)
📄
route
(66.6 KB)
📄
routef
(173 B)
📄
routel
(1.59 KB)
📄
rpc.gssd
(88.73 KB)
📄
rpc.idmapd
(48.13 KB)
📄
rpc.mountd
(128.91 KB)
📄
rpc.nfsd
(40.2 KB)
📄
rpc.rquotad
(78.95 KB)
📄
rpc.statd
(97.59 KB)
📄
rpcbind
(60.07 KB)
📄
rpcdebug
(18.05 KB)
📄
rpcinfo
(27.3 KB)
📄
rsyslogd
(648.45 KB)
📄
rtacct
(41.93 KB)
📄
rtcwake
(31.96 KB)
📄
rtmon
(48.67 KB)
📄
rtpr
(37 B)
📄
rtstat
(20.09 KB)
📄
runlevel
(704.8 KB)
📄
runq
(1.33 MB)
📄
runuser
(32.21 KB)
📄
safe_finger
(11.08 KB)
📄
sasldblistusers2
(19.26 KB)
📄
saslpasswd2
(15.09 KB)
📄
sefcontext_compile
(60.53 KB)
📄
selabel_digest
(11.17 KB)
📄
selabel_lookup
(11.14 KB)
📄
selabel_lookup_best_match
(11.16 KB)
📄
selabel_partial_match
(11.09 KB)
📄
selinux_restorecon
(15.21 KB)
📄
selinuxconlist
(11.1 KB)
📄
selinuxdefcon
(11.12 KB)
📄
selinuxenabled
(6.98 KB)
📄
selinuxexeccon
(7.09 KB)
📄
semanage
(42.76 KB)
📄
semodule
(23.77 KB)
📄
sendmail
(13.48 KB)
📄
service
(3.17 KB)
📄
sestatus
(15.02 KB)
📄
setcap
(11.13 KB)
📄
setenforce
(7.05 KB)
📄
setfiles
(27.16 KB)
📄
setquota
(83.16 KB)
📄
setsebool
(14.99 KB)
📄
sfdisk
(83.25 KB)
📄
showmount
(19.56 KB)
📄
shutdown
(704.8 KB)
📄
sim_server
(10.97 KB)
📄
slattach
(42.4 KB)
📄
sln
(743.78 KB)
📄
sm-notify
(68.43 KB)
📄
smartctl
(864.48 KB)
📄
smartd
(670.63 KB)
📄
ss
(128.44 KB)
📄
sshd
(836.88 KB)
📄
sshd-keygen
(3.53 KB)
📄
start-statd
(842 B)
📄
suexec
(43.3 KB)
📄
sulogin
(40.53 KB)
📄
sushell
(67 B)
📄
swaplabel
(15.31 KB)
📄
swapoff
(15.53 KB)
📄
swapon
(53.29 KB)
📄
switch_root
(15.35 KB)
📄
sys-unconfig
(184 B)
📄
sysctl
(23.57 KB)
📄
tc
(384.66 KB)
📄
tcpd
(36.62 KB)
📄
tcpdmatch
(40.83 KB)
📄
telinit
(704.8 KB)
📄
tracepath
(15.05 KB)
📄
tracepath6
(15.05 KB)
📄
try-from
(23.47 KB)
📄
tsig-keygen
(19.44 KB)
📄
tune2fs
(69.41 KB)
📄
tuned
(3.29 KB)
📄
tuned-adm
(5.22 KB)
📄
udevadm
(414.27 KB)
📄
umount.nfs
(114.68 KB)
📄
umount.nfs4
(114.68 KB)
📄
unix_chkpwd
(35.42 KB)
📄
unix_update
(35.42 KB)
📄
update-alternatives
(27.61 KB)
📄
update-smart-drivedb
(14.34 KB)
📄
useradd
(134.39 KB)
📄
userdel
(93.5 KB)
📄
usermod
(130.33 KB)
📄
usernetctl
(11.03 KB)
📄
uuserver
(14.97 KB)
📄
vigr
(62.54 KB)
📄
vipw
(62.54 KB)
📄
virt-what
(11.57 KB)
📄
visudo
(200.91 KB)
📄
vmcore-dmesg
(19.28 KB)
📄
vpddecode
(15.33 KB)
📄
weak-modules
(31.9 KB)
📄
whmapi0
(3.02 MB)
📄
whmapi1
(3.02 MB)
📄
whmlogin
(2.33 KB)
📄
wipefs
(28.05 KB)
📄
wpa_cli
(128.06 KB)
📄
wpa_passphrase
(56.79 KB)
📄
wpa_supplicant
(1.93 MB)
📄
xfs_admin
(1.35 KB)
📄
xfs_bmap
(638 B)
📄
xfs_copy
(339.33 KB)
📄
xfs_db
(576.38 KB)
📄
xfs_estimate
(11.16 KB)
📄
xfs_freeze
(767 B)
📄
xfs_fsr
(31.83 KB)
📄
xfs_growfs
(327.2 KB)
📄
xfs_info
(472 B)
📄
xfs_io
(122.68 KB)
📄
xfs_logprint
(355.81 KB)
📄
xfs_mdrestore
(314.81 KB)
📄
xfs_metadump
(747 B)
📄
xfs_mkfile
(1007 B)
📄
xfs_ncheck
(650 B)
📄
xfs_quota
(84.88 KB)
📄
xfs_repair
(563.2 KB)
📄
xfs_rtcp
(15.25 KB)
📄
xqmstats
(14.03 KB)
📄
xtables-multi
(91.52 KB)
📄
yum-complete-transaction
(9.22 KB)
📄
yumdb
(8.67 KB)
📄
zdump
(14.02 KB)
📄
zic
(50.02 KB)
📄
zramctl
(82.23 KB)
Editing: exicyclog
#! /bin/sh # Copyright (c) University of Cambridge, 1995 - 2015 # See the file NOTICE for conditions of use and distribution. # This script takes the following command line arguments: # -l dir Log file directory # -k days Number of days to keep the log files # Except when they appear in comments, the following placeholders in this # source are replaced when it is turned into a runnable script: # # CONFIGURE_FILE_USE_NODE # CONFIGURE_FILE_USE_EUID # CONFIGURE_FILE # BIN_DIRECTORY # EXICYCLOG_MAX # COMPRESS_COMMAND # COMPRESS_SUFFIX # CHOWN_COMMAND # CHGRP_COMMAND # CHMOD_COMMAND # TOUCH_COMMAND # MV_COMMAND # RM_COMMAND # This file has been so processed. # This is a shell script for cycling exim main and reject log files. Each time # it is run, the files get "shuffled down" by one, the current one (e.g. # mainlog) becoming mainlog.01, the previous mainlog.01 becoming mainlog.02, # and so on, up to the limit configured here. When the number to keep is # greater than 99 (not common, but some people do it), three digits are used # (e.g. mainlog.001). The same shuffling happens to the reject logs. All # renamed files with numbers greater than 1 are compressed. # This script should be called regularly (e.g. daily) by a root crontab # entry of the form # 1 0 * * * /opt/exim/bin/exicyclog # The following lines are generated from Exim's configuration file when # this source is built into a script, but you can subsequently edit them # without rebuilding things, as long are you are careful not to overwrite # the script in the next Exim rebuild/install. "Keep" is the number of old log # files that are required to be kept. Its value can be overridden by the -k # command line option. "Compress" and "suffix" define your chosen compression # method. The others are provided because the location of certain commands # varies from OS to OS. Sigh. keep=10 compress=/usr/bin/gzip suffix=gz chgrp=look_for_it chmod=look_for_it chown=look_for_it mv=/bin/mv rm=/bin/rm touch=/usr/bin/touch # End of editable lines ######################################################################### # Sort out command line options. while [ $# -gt 0 ] ; do case "$1" in -l) log_file_path=$2 shift ;; -k) keep=$2 shift ;; --version) echo "`basename $0`: $0" echo "build: 4.96.2" exit 0 ;; *) echo "** exicyclog: unknown option $1" exit 1 ;; esac shift done # Some operating systems have different versions in which the commands live # in different places. We have a fudge that will search the usual suspects if # requested. for cmd in chgrp chmod chown mv rm touch; do eval "oldcmd=\$$cmd" if [ "$oldcmd" != "look_for_it" ] ; then continue ; fi newcmd=$cmd for dir in /bin /usr/bin /usr/sbin /usr/etc ; do if [ -f $dir/$cmd ] ; then newcmd=$dir/$cmd break fi done eval $cmd=$newcmd done # See if this installation is using the esoteric "USE_EUID" feature of Exim, # in which it uses the effective user id as a suffix for the configuration file # name. In order for this to work, exicyclog must be run under the appropriate # euid. if [ "" = "yes" ]; then euid=.`id -u` fi # See if this installation is using the esoteric "USE_NODE" feature of Exim, # in which it uses the host's name as a suffix for the configuration file name. if [ "" = "yes" ]; then hostsuffix=.`uname -n` fi # Now find the configuration file name. This has got complicated because the # CONFIGURE_FILE value may now be a list of files. The one that is used is the # first one that exists. Mimic the code in readconf.c by testing first for the # suffixed file in each case. set `awk -F: '{ for (i = 1; i <= NF; i++) print $i }' <<End /etc/exim.conf End ` while [ "$config" = "" -a $# -gt 0 ] ; do if [ -f "$1$euid$hostsuffix" ] ; then config="$1$euid$hostsuffix" elif [ -f "$1$euid" ] ; then config="$1$euid" elif [ -f "$1$hostsuffix" ] ; then config="$1$hostsuffix" elif [ -f "$1" ] ; then config="$1" fi shift done # Determine if the log file path is set, and where the spool directory is. # Search for an exim_path setting in the configure file; otherwise use the bin # directory. Call that version of Exim to find the spool directory and log file # path, unless log_file_path was set above by a command line option. BEWARE: a # tab character is needed in the command below. It has had a nasty tendency to # get lost in the past. Use a variable to hold a space and a tab to keep the # tab in one place. st=' ' exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"` if test "$exim_path" = ""; then exim_path=/usr/sbin/exim; fi spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'` if [ "$log_file_path" = "" ] ; then log_file_path=`$exim_path -C $config -bP log_file_path | sed 's/.*=[ ]*//'` fi # If log_file_path contains only "syslog" then no Exim log files are in use. # We can't cycle anything. Complain and give up. if [ "$log_file_path" = "syslog" ] ; then echo "*** Exim is logging to syslog - no log files to cycle ***" exit 1 fi # Otherwise, remove ":syslog" or "syslog:" (some spaces allowed) and inspect # what remains. The simplistic regex originally used failed when a filename # contained "syslog", so we have to use three less general ones, because sed # doesn't have much power in its regexs. log_file_path=`echo "$log_file_path" | \ sed 's/^ *:\{0,1\} *syslog *:\{0,1\} *//;s/: *syslog *:/:/;s/: *syslog *$//'` # If log_file_path is empty, try and get the compiled in default by using # /dev/null as the configuration file. if [ "$log_file_path" = "" ]; then log_file_path=`$exim_path -C /dev/null -bP log_file_path | sed 's/.*=[ ]*//'` log_file_path=`echo "$log_file_path" | \ sed 's/^ *:\{0,1\} *syslog *:\{0,1\} *//;s/: *syslog *:/:/;s/: *syslog *$//'` fi # If log_file_path is still empty, the logs we are interested in are probably # called "mainlog" and "rejectlog" in the directory called "log" in the spool # directory. Otherwise we fish out the directory from the given path, and also # the names of the logs. if [ "$log_file_path" = "" ]; then logdir=$spool_directory/log mainlog=mainlog rejectlog=rejectlog paniclog=paniclog else logdir=`echo $log_file_path | sed 's?/[^/]*$??'` logbase=`echo $log_file_path | sed 's?^.*/??'` mainlog=`echo $logbase | sed 's/%s/main/'` rejectlog=`echo $logbase | sed 's/%s/reject/'` paniclog=`echo $logbase | sed 's/%s/panic/'` fi # Get into the log directory to do the business. cd $logdir || exit 1 # If there is no main log file, do nothing. if [ ! -f $mainlog ]; then exit; fi # Find out the owner and group of the main log file so that we can re-instate # this on moved and compressed files, since some operating systems may change # things. This is a tedious bit of code, but it should work both in operating # systems where the -l option of ls gives the user and group, and those in which # you need -lg. The condition is that, if the fifth field of the output from # ls consists entirely of digits, then the third and fourth fields are the user # and group. a=`ls -lg $mainlog` b=`ls -l $mainlog` # These statements work fine in the Bourne or Korn shells, but not in Bash. # So for the benefit of systems whose /bin/sh is really Bash, they have been # changed to a messier form. # user=`echo "$a\n$b\n" | awk 'BEGIN { OFS=""} { if ($5 ~ /^[0-9]+$/) print $3; }'` # group=`echo "$a\n$b\n" | awk 'BEGIN { OFS=""} { if ($5 ~ /^[0-9]+$/) print $4; }'` user=`echo "$a $b " | awk 'BEGIN { OFS=""} { if ($5 ~ /^[0-9]+$/) { print $3; exit; } }'` group=`echo "$a $b " | awk 'BEGIN { OFS=""} { if ($5 ~ /^[0-9]+$/) { print $4; exit; } }'` # Now do the job. First remove the files that have "fallen off the bottom". # Look for both the compressed and uncompressed forms. if [ $keep -lt 10 ]; then rotation=0$keep; else rotation=$keep; fi; if [ -f $mainlog.$rotation ]; then $rm $mainlog.$rotation; fi; if [ -f $mainlog.$rotation.$suffix ]; then $rm $mainlog.$rotation.$suffix; fi; if [ -f $rejectlog.$rotation ]; then $rm $rejectlog.$rotation; fi; if [ -f $rejectlog.$rotation.$suffix ]; then $rm $rejectlog.$rotation.$suffix; fi; if [ -f $paniclog.$rotation ]; then $rm $paniclog.$rotation; fi; if [ -f $paniclog.$rotation.$suffix ]; then $rm $paniclog.$rotation.$suffix; fi; # Now rename all the previous old files by increasing their numbers by 1. # When the number is less than 10, insert a leading zero. count=$keep if [ $count -lt 10 ]; then countt=0$count; else countt=$count; fi while [ $count -gt 1 ]; do old=`expr -- $count - 1` if [ $keep -gt 99 ]; then if [ $old -lt 10 ]; then oldt=00$old elif [ $old -lt 100 ]; then oldt=0$old else oldt=$old fi else if [ $old -lt 10 ]; then oldt=0$old; else oldt=$old; fi; fi if [ -f $mainlog.$oldt ]; then $mv $mainlog.$oldt $mainlog.$countt elif [ -f $mainlog.$oldt.$suffix ]; then $mv $mainlog.$oldt.$suffix $mainlog.$countt.$suffix fi if [ -f $rejectlog.$oldt ]; then $mv $rejectlog.$oldt $rejectlog.$countt elif [ -f $rejectlog.$oldt.$suffix ]; then $mv $rejectlog.$oldt.$suffix $rejectlog.$countt.$suffix fi if [ -f $paniclog.$oldt ]; then $mv $paniclog.$oldt $paniclog.$countt elif [ -f $paniclog.$oldt.$suffix ]; then $mv $paniclog.$oldt.$suffix $paniclog.$countt.$suffix fi count=$old countt=$oldt done # Now rename the current files as 01 or 001 if keeping more than 99 if [ $keep -gt 99 ]; then first=001; else first=01; fi # Grab our pid ro avoid race in file creation ourpid=$$ if [ -f $mainlog ]; then $mv $mainlog $mainlog.$first $chown $user:$group $mainlog.$first $touch $mainlog.$ourpid $chown $user:$group $mainlog.$ourpid $chmod 640 $mainlog.$ourpid $mv $mainlog.$ourpid $mainlog fi if [ -f $rejectlog ]; then $mv $rejectlog $rejectlog.$first $chown $user:$group $rejectlog.$first $touch $rejectlog.$ourpid $chown $user:$group $rejectlog.$ourpid $chmod 640 $rejectlog.$ourpid $mv $rejectlog.$ourpid $rejectlog fi if [ -f $paniclog ]; then $mv $paniclog $paniclog.$first $chown $user:$group $paniclog.$first $touch $paniclog.$ourpid $chown $user:$group $paniclog.$ourpid $chmod 640 $paniclog.$ourpid $mv $paniclog.$ourpid $paniclog fi # Now scan the (0)02 and later files, compressing where necessary, and # ensuring that their owners and groups are correct. count=2; while [ $count -le $keep ]; do if [ $keep -gt 99 ]; then if [ $count -lt 10 ]; then countt=00$count elif [ $count -lt 100 ]; then countt=0$count else countt=$count fi else if [ $count -lt 10 ]; then countt=0$count; else countt=$count; fi fi if [ -f $mainlog.$countt ]; then $compress $mainlog.$countt; fi if [ -f $mainlog.$countt.$suffix ]; then $chown $user:$group $mainlog.$countt.$suffix fi if [ -f $rejectlog.$countt ]; then $compress $rejectlog.$countt; fi if [ -f $rejectlog.$countt.$suffix ]; then $chown $user:$group $rejectlog.$countt.$suffix fi if [ -f $paniclog.$countt ]; then $compress $paniclog.$countt; fi if [ -f $paniclog.$countt.$suffix ]; then $chown $user:$group $paniclog.$countt.$suffix fi count=`expr -- $count + 1` done # End of exicyclog
Upload File
Create Folder