Files getting clobbered when I run out of disk space [message #180106] |
Mon, 07 January 2013 23:49 |
faraz
Messages: 1 Registered: January 2013
Karma: 0
|
Junior Member |
|
|
There was some disk space issues with my server. As a result any script
I had that opened a file for writing would clobber it i.e truncate it to
zero length . Since there was no space left on device, nothing would be
written to it.
Are there any workarounds to this? Here is some code I came up, but it is untested as I currently have disk space on my account:
/////////////////////////////
function check_disk_space() {
global $home_dir;
$fp = fopen( "$home_dir/cgi-bin/scripts/check_disk_space" , "w" );
fwrite ($fp, 'hello world' ) || die_sub ( 'Error checking for disk space' );
fclose ($fp) || die_sub ( 'Error checking for disk space' );
// unlink ( 'check_disk_space' );
} // end function
|
|
|
Re: Files getting clobbered when I run out of disk space [message #180107 is a reply to message #180106] |
Tue, 08 January 2013 01:07 |
Adam Harvey
Messages: 25 Registered: September 2010
Karma: 0
|
Junior Member |
|
|
On Mon, 07 Jan 2013 15:49:30 -0800, faraz wrote:
> There was some disk space issues with my server. As a result any script
> I had that opened a file for writing would clobber it i.e truncate it to
> zero length . Since there was no space left on device, nothing would be
> written to it.
>
> Are there any workarounds to this?
Honestly, the right answer here is to set up a monitoring system that
will alert you if disk space becomes low — trying to deal with this after
the disk has already filled up is a bad idea, since at that point you've
already lost the ability to write files, logs, database files et cetera.
Trying to do this inline in a PHP script is the wrong tool for the job.
Adam
|
|
|
Re: Files getting clobbered when I run out of disk space [message #180108 is a reply to message #180106] |
Tue, 08 January 2013 03:47 |
Peter H. Coffin
Messages: 245 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On Mon, 7 Jan 2013 15:49:30 -0800 (PST), faraz(at)squashclub(dot)org wrote:
> There was some disk space issues with my server. As a result any script
> I had that opened a file for writing would clobber it i.e truncate it to
> zero length . Since there was no space left on device, nothing would be
> written to it.
>
> Are there any workarounds to this? Here is some code I came up, but it is untested as I currently have disk space on my account:
>
> /////////////////////////////
>
> function check_disk_space() {
>
> global $home_dir;
>
> $fp = fopen( "$home_dir/cgi-bin/scripts/check_disk_space" , "w" );
>
> fwrite ($fp, 'hello world' ) || die_sub ( 'Error checking for disk space' );
>
> fclose ($fp) || die_sub ( 'Error checking for disk space' );
>
> // unlink ( 'check_disk_space' );
>
> } // end function
Freeing up some space on the device is out of the question?
--
"If Ace [Double] Books ever came out with an edition of The Bible, both
books would be edited down to 40,000 words, and they'd be renamed
"Master of Chaos" and "The Thing With Three Souls."
-- Terry Carr
|
|
|
Re: Files getting clobbered when I run out of disk space [message #180109 is a reply to message #180106] |
Tue, 08 January 2013 08:16 |
Anders Wegge Keller
Messages: 30 Registered: May 2012
Karma: 0
|
Member |
|
|
faraz(at)squashclub(dot)org writes:
> There was some disk space issues with my server. As a result any script
> I had that opened a file for writing would clobber it i.e truncate it to
> zero length . Since there was no space left on device, nothing would be
> written to it.
>
> Are there any workarounds to this? Here is some code I came up, but
> it is untested as I currently have disk space on my account:
>
> /////////////////////////////
>
> function check_disk_space() {
>
> global $home_dir;
>
> $fp = fopen( "$home_dir/cgi-bin/scripts/check_disk_space" , "w" );
>
> fwrite ($fp, 'hello world' ) || die_sub ( 'Error checking for disk space' );
>
> fclose ($fp) || die_sub ( 'Error checking for disk space' );
>
> // unlink ( 'check_disk_space' );
>
> } // end functio
Use the disk_free_space() function instead. That will give you a
warning in advance, that you use to have your script send you a mail
about the situation.
You should also note that your file could end up being clobbered,
even in situations where you could write this test file. If your
payload would grow the file by more than one disk block, and there was
only one free, the dummy file would be written, but the capacity would
still be exceeded, when you write your actual data.
And finally, as have already been said: It's not the best of times to
handle a full disk, when you have data to write. It's of course better
to avoid loss of already existing data, but you really need to find a
way of avoiding a full disk in the first place.
--
/Wegge
Leder efter redundant peering af dk.*,linux.debian.*
|
|
|
Re: Files getting clobbered when I run out of disk space [message #180110 is a reply to message #180106] |
Tue, 08 January 2013 15:26 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 1/7/2013 6:49 PM, faraz(at)squashclub(dot)org wrote:
> There was some disk space issues with my server. As a result any script
> I had that opened a file for writing would clobber it i.e truncate it to
> zero length . Since there was no space left on device, nothing would be
> written to it.
>
> Are there any workarounds to this? Here is some code I came up, but it is untested as I currently have disk space on my account:
>
<snip code>
I agree with Adam. When you're out of space is too late to detect it,
and PHP is the wrong place to try.
All of my servers monitor disk space (and other things) and send me an
email when anything gets too far out of whack, even if the web server
isn't running. It's all done with freely available tools at the OS level.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: Files getting clobbered when I run out of disk space [message #180111 is a reply to message #180106] |
Tue, 08 January 2013 18:01 |
Twayne
Messages: 135 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
In news:89d3884a-015f-42a7-910f-7c1c77ba68d9(at)googlegroups(dot)com,
faraz(at)squashclub(dot)org <faraz(at)squashclub(dot)org> typed:
> There was some disk space issues with my server. As a
> result any script
> I had that opened a file for writing would clobber it i.e
> truncate it to
> zero length . Since there was no space left on device,
> nothing would be
> written to it.
>
> Are there any workarounds to this? Here is some code I
> came up, but it is untested as I currently have disk
> space on my account:
If you mean at the server end, there is nothing you can do about
it. It's their responsibility to keep enough space available to
you.
If you mean a local server, then it's your responsibility.
Either get rid of any quota or get/move it to a larger/another
drive with enough space.
I can't really see the problem - or how it's occurrng. Perhaps if
you provided enough details ...
HTH,
Twayne`
> /////////////////////////////
>
> function check_disk_space() {
>
> global $home_dir;
>
> $fp = fopen( "$home_dir/cgi-bin/scripts/check_disk_space"
> , "w" );
>
> fwrite ($fp, 'hello world' ) || die_sub ( 'Error
> checking for disk space' );
>
> fclose ($fp) || die_sub ( 'Error checking for disk space'
> );
>
> // unlink ( 'check_disk_space' );
>
> } // end function
|
|
|
|