Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

can't open file for appending

by ytjPerl (Scribe)
on Aug 14, 2017 at 15:57 UTC ( [id://1197366]=perlquestion: print w/replies, xml ) Need Help??

ytjPerl has asked for the wisdom of the Perl Monks concerning the following question:

Hi folks, I have code as follow to start up my server and output log to a file. I've tested and it was working. but Today when I tried to run it again, I got error 'Can't open 'D:/log_script/tuxedo_logs/startup.20170814xxxxxx.log' for appending: 'No such file or directory. I am really confused, I assume 'my $input = "D:/log_script/tuxedo_logs/startup" . DATETIME . ".log";' this code would generate this file for writing.
use strict; use warnings; use lib "D:/App/Perl/lib//"; use autodie; use Capture::Tiny 'capture_merged'; use POSIX; use constant DATETIME => strftime("%Y%m%d%H%M%S", localtime); my $input = "D:/log_script/tuxedo_logs/startup" . DATETIME . ".log"; open ( my $file, ">>", $input )or die "cannot open $!"; chdir "D:/server/setup"; print $file capture_merged { system('setenv.cmd&&tmboot -y') }; close($file); `

Replies are listed 'Best First'.
Re: can't open file for appending
by stevieb (Canon) on Aug 14, 2017 at 16:02 UTC

    The file would be created if it doesn't exist within the open() call as the code currently is written.

    This tells me that part of the directory path may be unavailable. Try to browse all the way to the tuxedo_logs directory.

Re: can't open file for appending
by Mr. Muskrat (Canon) on Aug 14, 2017 at 18:24 UTC

    Does the D:/log_script/tuxedo_logs directory still exist?

    Does the script run as you or another user? If it runs as a different user, does that user have permission to write to the D:/log_script/tuxedo_logs directory?

    As I was writing this up I noticed that the filename in the error you posted doesn't match the filename that the code as shown would generate... The error has it as 'D:/log_script/tuxedo_logs/startup.20170814xxxxxx.log' but the script as written would generate them like 'D:/log_script/tuxedo_logs/startup20170814xxxxxx.log' (notice the lack of a period after startup). I assume you typed the error message (and included a period that wasn't there) instead of copy/pasting it.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1197366]
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (4)
As of 2024-04-20 00:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found