Still fairly new at the whole scripting thing so be gentle. I'm trying to write a simple script that archives my log files into a master log broken into weeks of the year.
My script runs fine up till the "cat" lines which I get a undefined or illegal variable name error. But using the same format earlier in the script it has no problem with the makedir or touch lines with the dates in them.
I have fiddled with it & had no luck, can someone eyeball this and tell me what I have done wrong? This is on a freenas system using a version of freebsd which is why I have the kooky copy lines instead of just echoing "" to the logs, which seemed to break syslog.
TIA
DP
Code:
#/bin/bash
#by DP run as ROOT!
#
# make directory in format week number-year.month-year-logs
#
mkdir /var/log/archives/'week-'$(date +%U'.'%B'-20'%y'-logs')
#
# touch new archived logs
touch /var/log/archives/'week-'$(date +%U'.'%B'-20'%y'-logs')/sshd.log
touch /var/log/archives/'week-'$(date +%U'.'%B'-20'%y'-logs')/system.log
#
#stop syslogd deamon
/etc/rc.d/syslogd stop
#
#copy sshd & system log to monthly directory
cat /var/log/sshd.log >> /var/log/archives/'week-'$(date +%U'.'%B'-20'%y'-logs')/sshd.log
cat /var/log/system.log >> /var/log/archives/'week-'$(date +%U'.'%B'-20'%y'-logs')/system.log
#
#copy clean sshd & system log file to clear logs
cp /var/log/clean/sshd.clean.log /var/log/sshd.log
cp /var/log/clean/system.clean.log /var/log/system.log
#
#
#restart syslogd
/etc/rc.d/syslogd start
#
# log results
logger SYSTEM "Daily rotation of SSH & System logs was successful stored in /var/log/week-"$(date +%U'.'%B'-20'%y'-logs')
#
# EOF
Hi all,
Im using a script which contains read command.. the script works perfectly but when I alias the script it gave "undifined variable" after I enter the read command input (variable)...
Does any one know why ? (4 Replies)
Hello,
So I sorted my file as I was supposed to:
sort -n -r -k 2 -k 1 file1 | uniq > file2
and when I wrote
> cat file2
in the command line, I got what I was expecting, but in the script itself
...
sort -n -r -k 2 -k 1 averages | uniq > temp
cat file2
It wrote a whole... (21 Replies)
Hello,
#this script renames schematic file for model year change
#my = model year prefix
my="lsd"
for i in 'ls lsb*'
do
old=$i
new='echo $i | cut - c4 - c30'
mv $i $my$new
end
i: Undefined variable
What am I missing or doing wrong? (6 Replies)
Below script cuts date part from the date entered by the user.
#!/bin/csh
echo 'Enter date in the format dd/mm/yyyy'
read DATE
DD=`echo $DATE | cut -c1-2`
echo $DD;
when debug with -x option , it works perfectly but without -x doesnot.:confused:
$ sh -x unix_12.sh
+ echo Enter... (2 Replies)
hi there
I have this C shell script that was migrated from AIX to Linux, could someone please help me, I checked the syntax numerous times but I can't find out where the error is. The script is meant to find files older than 27 days and delete it
#!/usr/bin/csh
#
... (22 Replies)
Hi,
i am a beginner in ubuntu. my default shell is bash. everytime i try to change the shell with command "csh", i get a message (probably an error message). after i get into c-shell, when i try to execute a c shellscript, then it showed the same message. any idea about what is this about or any... (1 Reply)
list of legal and illegal bash variable names and wht each is either illegal and ligal?
4. Seneca college, Toronto , Canada, peter wheeler, tech 154: (5 Replies)
I am getting the error undefined variable even after following these steps
#read name
abcd
#echo $name
na: undefined variable (6 Replies)
Discussion started by: Vishawdeep
6 Replies
LEARN ABOUT OSF1
syslog.conf
syslog.conf(4) Kernel Interfaces Manual syslog.conf(4)NAME
syslog.conf - syslogd configuration file
SYNOPSIS
facility.severity destination Where: Is part of the system generating the message, specified in /usr/include/sys/syslog_pri.h.
See also the syslogd(8) reference page. The severity level, which can be emerg, alert, crit, err, warning, notice, info, or debug. See
/usr/include/sys/syslog_pri.h.
The syslogd daemon logs all messages of the specified severity level plus all messages of greater severity. For example, if you
specify level err, all messages of levels err, crit, alert, and emerg or panic are logged. A local file pathname to a log file, a
host name for remote logging or a list of users. In the latter case the users will receive messages when they are logged in. An
asterisk (*) causes a message to be sent to all users who are currently logged in.
DESCRIPTION
The /etc/syslog.conf file is a system file that enables you to configure or filter events that are to be logged by syslogd. You can specify
more than one facility and its severity level by separating them with semicolons.
You can specify more than one facility logs to the same file by separating the facilities with commas, as shown in the EXAMPLES section.
The syslogd daemon ignores blank lines and lines that begin with an octothorpe (#). You can specify # as the first character in a line to
include comments in the file or to disable an entry. The facility and severity level are separated from the destination by one or more tab
characters.
If you want the syslogd daemon to use a configuration file other than the default, you must specify the file name with the following com-
mand: # syslogd -f config_file
Daily Log Files
You can specify in the /etc/syslog.conf file that the syslogd daemon create daily log files. To create daily log files, use the following
syntax to specify the path name of the message destination: /var/adm/syslog.dated/ { file} The file variable specifies the name of the log
file, for example, mail.log or kern.log. If you specify a /var/adm/syslog.dated/file path name destination, each day the syslogd daemon
creates a sub-directory under the /var/adm/syslog.dated directory and a log file in the sub-directory, using the following syntax:
/var/adm/syslog.dated/ date / file Where: The date variable specifies the day, month, and time that the log file was created. The file
variable specifies the name of the log file you previously specified in the /etc/syslog.conf file. The syslogd daemon automatically cre-
ates a new date directory every 24 hours and also when you boot the system. The current directory is a link to the latest date directory.
To get the latest logs, you only need to reference the /var/adm/syslog.dated/current directory.
EXAMPLES
The following is a sample /etc/syslog.conf file: # # syslogd config file # # facilities: kern user mail daemon auth syslog lpr binary #
priorities: emerg alert crit err warning notice info debug # kern.debug /var/adm/syslog.dated/kern.log user.debug /var/adm/sys-
log.dated/user.log daemon.debug /var/adm/syslog.dated/daemon.log auth.crit;syslog.debug /var/adm/syslog.dated/syslog.log mail,lpr.debug
/var/adm/syslog.dated/misc.log msgbuf.err /var/adm/crash.dated/msgbuf.savecore kern.debug /var/adm/messages kern.debug /dev/console *.emerg
*
FILES
/etc/syslog.conf
/etc/syslog.auth - Authorization file for remote logging.
/usr/include/sys/syslog_pri.h - Common components of a syslog event log record.
RELATED INFORMATION
Commands: /usr/sbin/syslogd(8), /usr/sbin/binlogd(8)
System Administration delim off
syslog.conf(4)