Sponsored Content
Top Forums Shell Programming and Scripting script help Undefined /illegal variable using cat Post 302532278 by dpreviti on Monday 20th of June 2011 11:56:32 AM
Old 06-20-2011
script help Undefined /illegal variable using cat

Hello group,

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


Last edited by pludi; 06-20-2011 at 05:42 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Prompting for Input - Getting Undefined Variable

#!/bin/csh -f echo "Enter MEUPS User Id :-" read UID echo "You entered $UID" --------------------------------------- Whn executed, I get an error message "UID: Undefined variable" (1 Reply)
Discussion started by: Kartheg
1 Replies

2. Shell Programming and Scripting

undefined variable error

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)
Discussion started by: yahyaaa
4 Replies

3. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

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)
Discussion started by: shira
21 Replies

4. Shell Programming and Scripting

Undefined variable in mv script

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)
Discussion started by: dtrescott
6 Replies

5. Shell Programming and Scripting

Undefined variable error in csh script

Below csh script gives error: Undefined variable:confused: #!/bin/csh $QUERY="netscape"; COUNT_NETSCAPE=${ps | grep -c $QUERY}; echo $COUNT_NETSCAPE; when run gives error adroit:/home/seo/hitendra 64 ] ./unix_6.sh QUERY: Undefined variable. What is the root cause of the... (3 Replies)
Discussion started by: hiten.r.chauhan
3 Replies

6. Shell Programming and Scripting

Undefined variable and command not found

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)
Discussion started by: hiten.r.chauhan
2 Replies

7. Emergency UNIX and Linux Support

Csh script with Undefined variable error

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)
Discussion started by: hedkandi
22 Replies

8. Ubuntu

error LD: undefined variable while changing shell from bash to csh

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)
Discussion started by: Avinash Nayak
1 Replies

9. Homework & Coursework Questions

Legal and illegal bash variable names?

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)
Discussion started by: renegade755
5 Replies

10. UNIX for Dummies Questions & Answers

Undefined variable error

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
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)
All times are GMT -4. The time now is 08:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy