Logger command not working for one script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Logger command not working for one script
# 1  
Old 09-23-2019
Logger command not working for one script

Hi,

On RHEL 7.2, I created below script in cronjob for every minute. If this process is found to be not running, it should record message in /var/adm/xymessages, start it and send email.

Code:
#!/bin/bash

source /export/home/prodadm/.bash_profile

if [ `ps -ef |grep ercapi | grep -v grep | wc -l` -eq 0 ];
then
        /export/home/prodadm/erc/scripts/start-erc;
        /bin/logger -p 'XY 6990 - ERC API on `hostname` is restarted' /var/adm/xymessages;
        /bin/mail -s "ERC API on v911t-vpctools restarted" test-admin@xyz123.com;
fi

But logger part is not working, seems like I am missing something. It should pick hostname also. Probably I am missing an entry in rsyslog.conf ?

Quote:
[root@test-servs ~]# logger -p 'XY 6990 - ERC API on `hostname` is restarted' /var/adm/xymessages
logger: unknown priority name: XY 6990 - ERC API on `hostname` is restarted.
[root@test-servs ~]#
[root@test-servs ~]# cat /etc/rsyslog.conf | grep -v "#"
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg Smiliemusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
[root@test-servs ~]#
Please advice.

Thanks
# 2  
Old 09-23-2019
Did you try giving the whole pathname of hostname?
# 3  
Old 09-23-2019
Yes, it misses same thing
Code:
[root@test-servs ~]# logger -p 'XY 6990 - ERC API on `/bin/hostname` is restarted' /var/adm/xymessages
logger: unknown priority name: XY 6990 - ERC API on `/bin/hostname` is restarted.
[root@test-servs ~]#

# 4  
Old 09-23-2019
The single quotes will stop command subsitution. The hostname call need to be outside of single quotes eg:

Code:
'XY 6990 - ERC API on '$(hostname)' is restarted'

or
Code:
"XY 6990 - ERC API on $(hostname) is restarted"


Last edited by Chubler_XL; 09-23-2019 at 06:06 PM..
# 5  
Old 09-23-2019
Yes. Second option works. Thanks
Code:
[root@test-servs ~]# logger -p "XY 6990 - ERC API on $(hostname) is restarted" /var/adm/xymessages
logger: unknown priority name: XY 6990 - ERC API on test-servs is restarted.
[root@test-servs ~]#

Script is fine now. Looks like, it is logger issue now, more appropriate for "Solaris" sub-form now :-)
# 6  
Old 09-23-2019
You must give a facility.severity pair after -p
For ex
Code:
logger -p user.err  "XY 6990 - ERC API on $(hostname) is restarted"

The syslog service determines which file user.err is.
These 2 Users Gave Thanks to MadeInGermany For This Post:
# 7  
Old 09-23-2019
You could also create a /etc/rsyslog.conf entry to log a facility to your /var/adm/xymessages file eg:

Code:
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg Smiliemusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
ercapi.* $WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg Smiliemusrmsg:*
uucp,news.crit /var/log/spooler
local2.* /var/log/boot.log
local3.* /var/adm/xymessages

And then use:
Code:
# logger -p local3.info "message"


Last edited by Chubler_XL; 09-23-2019 at 06:20 PM.. Reason: After testing found you need to use existing local facility names
This User Gave Thanks to Chubler_XL For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Execute ssh command with additional terminal command to any remote user not working script

Hello i am having an issue with bash script and this is the code now=$(cat hosts1.txt | awk '{print $2;}') while read n ;do ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 && echo "test1 ALL=(ALL:ALL) ALL" >> /etc/sudoers' When i execute only part with cat, it... (8 Replies)
Discussion started by: tomislav91
8 Replies

2. Shell Programming and Scripting

Echo command not working in the script

HI I have and echo command which works perfectly in the shell but when i execute in the script it gives me an error code query is as below QUERY=`echo "Select Severity,Dupl_count,Creation_Time,Last_Received,Node_Name,Node_Name,Object,Message_Group,Message_Text,Last_Annotation from " \ ... (2 Replies)
Discussion started by: Jcpratap
2 Replies

3. UNIX for Dummies Questions & Answers

Shell script not working but command works in command prompt

Hi everyone I have a problem with my script If I try directly this command /usr/bin/nice -n 19 mysqldump -u root --password="******" wiki_schneider -c | nice -n 19 gzip -9 > /point_de_montage/$(date '+%Y%m%d')-wiki-db.sql.gz It works But if I simply add this command in a script and... (8 Replies)
Discussion started by: picemma
8 Replies

4. Shell Programming and Scripting

Piping the "script" command through the logger command.

I use the snippet below in /etc/profile on RHEL Linux to capture command line logging and it all works well and good. Now I'd like to pipe the same output from script through the logger command so it all gets logged to syslog. The only additional code I've added is in bold below (|... (4 Replies)
Discussion started by: woodson2
4 Replies

5. Shell Programming and Scripting

Mailx command not working in the script

when i am using Mailx command from AIX box, i am getting the following errors : uuencode: not found. mailx: not found. but when i executed the mailx command as shown below it worked cat /etc/hosts | mailx -v -s "test email" user@server.com It works fine in the production server. ... (2 Replies)
Discussion started by: pyaranoid
2 Replies

6. Shell Programming and Scripting

help with shell script: cp command not working, but mv command works...

Hello. I would like to ask your help regarding the cp command. We are using a cp command to create a back-up copy of our file but to no avail. It's just not working. We already checked the file and directory permissions and all seems correct. We have a script (ftp.script) which calls on... (1 Reply)
Discussion started by: udelalv
1 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. Shell Programming and Scripting

Script for pfiles command not working

Hi, I Have downloaded script for pfiles command, It is written to make it run on Linux, But I could not make out on which language it is written,kindly help me in executing this script:( link: http://sourceware.org/systemtap/examples/process/pfiles.stp (1 Reply)
Discussion started by: thehulkom
1 Replies

9. UNIX for Advanced & Expert Users

Q on <user> of syslog message generated by logger command

Generally(at least on AIX5.3, Solaris9, OS X)'logger' command would create syslog messages which carry <login name> . On Solaris9, I have experienced two circumstances in which 'logname' command fails. In this circumstance I saw the 'logger' command generated syslog messages which carry... (0 Replies)
Discussion started by: masaki
0 Replies

10. Shell Programming and Scripting

Logger Command

Hi I have a command in a script . /usr/bin/iostat -E I would like to place an entry in /var/adm/messages (via syslog) as a daemon.notice using the logger command but i just cant work out the syntax for this , do I pipe the output of iostat into logger? or is it redirected...can somebody give me... (1 Reply)
Discussion started by: hcclnoodles
1 Replies
Login or Register to Ask a Question