Sponsored Content
Operating Systems Solaris Solaris 10 massive SMF log file Post 302845099 by achenle on Tuesday 20th of August 2013 09:06:01 PM
Old 08-20-2013
Quote:
Originally Posted by bartus11
You already know how:
Code:
cat /dev/null > /path/to/logfile

This will zero the file without interrupting any processes that had it open.
That's not guaranteed to work.

Depending on how the file was opened, how it's written to, and the specifics of how the underlying file system handles attempts to write past the end of a file, you could wind up doing nothing more than creating a file every bit as large as it was, only whatever data that was in the file is lost.

Here's what happens:

1. A process has an open file descriptor on a file, and the file was not opened in "append" mode.
2. File is truncated to zero bytes by an outside process.
Note that file descriptors have a "current" offset associated with them, and operations outside the process do not effect that position.
3. The process writes to the file, and the bytes go to the original pre-truncation "current" offset in the file.
4. If the underlying file system does not support sparse files, it's back to being 19GB. If the file system does support sparse files, an "ls -l" will still show the file as being 19 GB, but a "du" will show that the file actually uses much less space.

And all bets are off if a process has a file memory-mapped and the file is truncated out from under the mapping. Just try truncating a binary executable when a copy of that binary is running....
This User Gave Thanks to achenle For This Post:
 

7 More Discussions You Might Find Interesting

1. Solaris

Boot problem with SMF svcs-Solaris 10 for x86

Hi All, I am newbie in solaris, please guide me. A week before i installed solaris10 on my x86 system, it was working fine i always used "init 5" to shutdown my system as per my collegue advice. But yesterday when i started my system it gave me following message ... (6 Replies)
Discussion started by: imrankhan.in
6 Replies

2. Solaris

Permission denied in SMF service log

I can't get the exact error message because I am at home, but on Solaris 10u5 machine I have at work, a few services are stuck in the maintenance state with the following error message in the individual service logs (/var/svc/log/FMRI:instance.log): Cannot chdir: permission denied Fortunately... (2 Replies)
Discussion started by: ilikecows
2 Replies

3. Solaris

SMF in Solaris 10

In SOlaris 9 for eg, inside the /etc/init.d/inetsvc file, you can set the tcp tracing by going to the last line and adding the following as :- inetd -s -t & In Solaris 10, I know we can use the svccfg to do it or with the inetadm command. When I use inetadm -m command to set the tcp tracing... (3 Replies)
Discussion started by: incredible
3 Replies

4. Solaris

Can solaris 10 SMF use remote dependencies

I have a customer who wants us to set up their applications to start using the solaris 10 SMF. One of their applications requires that 3 database instances are up and running, but those instances are on 3 separate servers. I can't think of any way that this can be done from what I have read on my... (1 Reply)
Discussion started by: rkruck
1 Replies

5. Solaris

How to change default log location of SMF registered processes.

Hi All, I am trying to change default log location ( var/logs/svc/<component>) of each and evry SMF registered processes and append to particular file (/opt/smf.log) . Please help ................. Thanks in advance !!! Gyan prakash (5 Replies)
Discussion started by: gyan_198
5 Replies

6. Solaris

SMF in Solaris wont write to stderr/stdout ?

Hi, I got a process (c written) that we usually run this way : EmsChkQu >> /EMS/log/EmsChkQu.log 2>&1 When trying to use it as a service I defined it this way : <?xml version='1.0'?> <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> <service_bundle... (6 Replies)
Discussion started by: zionassedo
6 Replies

7. Shell Programming and Scripting

Massive ftp

friends good morning FTP works perfect but I have a doubt if I want to transport 10 files, I imagine that I should not open 10 connections as I can transfer more than 1 file? ftp -n <<!EOF open caburga user ephfact ephfact cd /users/efactura/docONE/entrada bin mput EPH`date... (16 Replies)
Discussion started by: tricampeon81
16 Replies
seek(n) 						       Tcl Built-In Commands							   seek(n)

__________________________________________________________________________________________________________________________________________________

NAME
seek - Change the access position for an open channel SYNOPSIS
seek channelId offset ?origin? _________________________________________________________________ DESCRIPTION
Changes the current access position for channelId. ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, stdout, or stderr), the return value from an invocation of open or socket, or the result of a channel creation command provided by a Tcl extension. The offset and origin arguments specify the position at which the next read or write will occur for channelId. Offset must be an integer (which may be negative) and origin must be one of the following: start The new access position will be offset bytes from the start of the underlying file or device. current The new access position will be offset bytes from the current access position; a negative offset moves the access position back- wards in the underlying file or device. end The new access position will be offset bytes from the end of the file or device. A negative offset places the access position before the end of file, and a positive offset places the access position after the end of file. The origin argument defaults to start. The command flushes all buffered output for the channel before the command returns, even if the channel is in nonblocking mode. It also discards any buffered and unread input. This command returns an empty string. An error occurs if this command is applied to channels whose underlying file or device does not support seeking. Note that offset values are byte offsets, not character offsets. Both seek and tell operate in terms of bytes, not characters, unlike read. EXAMPLES
Read a file twice: set f [open file.txt] set data1 [read $f] seek $f 0 set data2 [read $f] close $f # $data1 == $data2 if the file wasn't updated Read the last 10 bytes from a file: set f [open file.data] # This is guaranteed to work with binary data but # may fail with other encodings... fconfigure $f -translation binary seek $f -10 end set data [read $f 10] close $f SEE ALSO
file(n), open(n), close(n), gets(n), tell(n), Tcl_StandardChannels(3) KEYWORDS
access position, file, seek Tcl 8.1 seek(n)
All times are GMT -4. The time now is 09:10 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy