Sponsored Content
Full Discussion: check for "cannot open file"
Top Forums UNIX for Dummies Questions & Answers check for "cannot open file" Post 302108435 by sb008 on Monday 26th of February 2007 01:36:07 PM
Old 02-26-2007
Quote:
Originally Posted by ssmith001
I have a small script that checks to see if a file exists and that it has data in it. I also need to check if the file can be opened. I had an issue today where the file it checks could not be opened and my script did not catch it. How do I check to see if it cannot be opened?

Code:
dirname=/opt/manu/srv
f1=manumgrmdip2_7500.log
f2=manumgrmdip2_7500.pid
export HOST=`hostname`
f1size=`wc -c $dirname/manumgrmdip2_7500.log | cut -f1 -d " "`
f2size=`wc -c $dirname/manumgrmdip2_7500.pid | cut -f1 -d " "`

if [[ ! -f $dirname/$f1 || ! -f $dirname/$f2 ]] ; then
      echo "Either <$dirname/$f1> or <$dirname/$f1> does not exist" | mailx -s "Missing files on Manugistics $HOST Server (MDIP2)" user@xyz.com
else if (( $(wc -c < $dirname/$f1) != 0 )) || (( $(wc -c < $dirname/$f2) > 6 )) ; then
      echo "The size of $dirname/$f1 size = $f1size, and $dirname/$f2 = $f2size'" | mailx -s "Error with file sizes on Manugistics $HOST Server (MDIP2)" user@xyz.com < manumgrmdip2_7500.log
     fi;
fi;


-r <filename> to check for existance and readability
-s <filename> to check for existance and size greater than 0

Code:
#!/usr/bin/ksh
dirname=/opt/manu/srv
f1=manumgrmdip2_7500.log
f2=manumgrmdip2_7500.pid
export HOST=`hostname`

if [ ! -r ${dirname}/${f1} -o ! -r ${dirname}/${f2} ]
then
  echo "Either <$dirname/$f1> or <$dirname/$f1> does not exist or is not readable" | mailx -s "Missing files on Manugistics $HOST Server (MDIP2)" user@xyz.com
elif [ ! -s ${dirname}/${f1} -o ! -s ${dirname}/${f2} ]
then
  echo "Either <$dirname/$f1> or <$dirname/$f2>has a filesize of 0'" | mailx -s "Error with file sizes on Manugistics $HOST Server (MDIP2)" user@xyz.com < manumgrmdip2_7500.log
fi

if you want to know the exact size use the typeset command so you don't need the cut command:

Code:
typset -i f1size f2size
f1size=`wc -c ${dirname}/${f1}`
f2size=`wc -c ${dirname}/${f2}`

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

check input = "empty" and "numeric"

Hi how to check input is "empty" and "numeric" in ksh? e.g: ./myscript.ksh k output show: invalid number input ./myscript.ksh output show: no input ./myscript.ksh 10 output show: input is numeric (6 Replies)
Discussion started by: geoffry
6 Replies

2. AIX

Probably an easy SMIT question- "Unable to open temp file"

Hi All, Can't find any documentation on the web for this anywhere, except about three web pages that are in Chinese. When I enter SMIT on this box, I get ERROR MESSAGE: Unable to open temp file I suspected smit.log, but it is universal readable, writeable by root, and I am root.... (6 Replies)
Discussion started by: jeffpas
6 Replies

3. SuSE

VMDB Failure" followed by "Unable to open snapshot file"

keep getting an error when I try to revert to a snapshot: "VMDB Failure" followed by "Unable to open snapshot file" Im using vmware server 1.0.4, host OS is windows xp and guest OS is SLES. Is there anything I can do to recover the snapshot or am I in trouble!?!?! (0 Replies)
Discussion started by: s_linux
0 Replies

4. Shell Programming and Scripting

"sed" to check file size & echo " " to destination file

Hi, I've modified the syslogd source to include a thread that will keep track of a timer(or a timer thread). My intention is to check the file size of /var/log/messages in every one minute & if the size is more than 128KB, do a echo " " > /var/log/messages, so that the file size will be set... (7 Replies)
Discussion started by: jockey007
7 Replies

5. Solaris

How to check "faulty" or "stalled" print queues - SAP systems?

Hi all, First off, sorry for a long post but I think I have no other option if I need to explain properly what I need help for. I need some advise on how best to check for "faulty" or "stalled/jammed' print queues. At the moment, I have three (3) application servers which also acts as print... (0 Replies)
Discussion started by: newbie_01
0 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. SCO

sco unix backward compatibility on "max open file per process"

Hi How to increase maximum number of open file in "sco xenix binary" running in "sco unix openserver 5.0.7" ? I have changed "NOFILES" kernel parameter to 512, but xenix binray can't open more than 60. tnx (4 Replies)
Discussion started by: javad1_maroofi
4 Replies

8. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

9. Shell Programming and Scripting

Expect: spawn id exp5 not open while executing "expect "$" { send "sudo su -\r" }"

Hi All, i am trying to ssh to a remote machine and execute certain command to remote machine through script. i am able to ssh but after its getting hung at the promt and after pressing ctrl +d i am gettin the out put as expect: spawn id exp5 not open while executing "expect "$" {... (3 Replies)
Discussion started by: Siddharth shivh
3 Replies

10. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies
chroot(2)							System Calls Manual							 chroot(2)

Name
       chroot - change root directory

Syntax
       chroot(dirname)
       char *dirname;

Description
       The  dirname is the address of the pathname of a directory, terminated by a null byte.  The system call causes this directory to become the
       root directory (/).

       For a directory to become the root directory, a process must have execute (search) access to the directory.

       This call is restricted to the superuser.

Return Values
       Upon successful completion, a value of 0 is returned.  Otherwise, a value of -1 is returned and errno is set to indicate an error.

Diagnostics
       The system call fails and the root directory is unchanged under the following conditions:

       [ENOTDIR]      A component of the dirname is not a directory.

       [ENAMETOOLONG] A component of a dirname exceeded 255 characters, or an entire dirname exceeded 1023 characters.

       [ENOENT]       The dirname argument points to the name of a directory which does not exist, or to  an  empty  string  and  the  environment
		      defined is POSIX or SYSTEM_FIVE.

       [EFAULT]       The dirname points outside the process's allocated address space.

       [ELOOP]	      Too many symbolic links were encountered in translating the pathname.

       [EIO]	      An I/O error occurred while reading from or writing to the file system.

       [ESTALE]       The  file  handle  given	in the argument is invalid.  The file referred to by that file handle no longer exists or has been
		      revoked.

       [ETIMEDOUT]    A connect request or remote file operation failed because the connected party did not properly respond  after  a	period	of
		      time that is dependent on the communications protocol.

       [EPERM]	      The effective user ID is not that of superuser.

See Also
       chdir(2)

																	 chroot(2)
All times are GMT -4. The time now is 09:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy