How To Rotate A File in HP-UX?


 
Thread Tools Search this Thread
Operating Systems HP-UX How To Rotate A File in HP-UX?
# 1  
Old 10-29-2013
How To Rotate A File in HP-UX?

I need to rotate a file in HP-UX of a application. Iīve tried to do a task in the cron with a script (with sed and ed commands) but it was a successfully option (the application continued writing the file Smilie )


Code:
LINEAS_OUT=$(wc -l < $RMISTDOUT)
 LINEAS_FIN=1,expr $LINEAS_OUT - 100p 

sed -n  "$LINEAS_FIN" $RMISTDOUT  > $BACKUP_RMISTDOUT  LINEAS_DELETE=1,expr $LINEAS_OUT - 100d 

N_DELETE=1,expr $LINEAS_OUT - 100p 

printf "$LINEAS_DELETE\nw" | ed -s $RMISTDOUT 

printf "$N_DELETE\nw" | ed -s $RMISTDOUT gzip $BACKUP_RMISTDOUT &



The second option that i tried, was splitting the file at the start of the program:


Code:
/usr/local/coreutils/bin/split -a7 -b 50m -u - {FILE}.${DATE}.stdout

but with this option, it seems like nothing is written into file out until the whole file has been finally processed (yeah, this is a problem).
I have read that a option is to use stdbuf like this:


Code:
~/coreutils/bin/stdbuf -o0 ~/coreutils/bin/split .....

but i donīt have it in my system (PA-RISC B.11.11)...
Any ideas? Thanks!

Last edited by Scrutinizer; 10-30-2013 at 06:34 AM.. Reason: code tags added
# 2  
Old 10-29-2013
Wrench

We use 'logrotate' on our systems. standard on the linux systems. Available for HP-UX at hpux .connect .org.uk. (would have posted link but forum wouldn't let me.
# 3  
Old 10-30-2013
Thanks nzle, but i have tried logrotate and it doesnīt work. The problem is that my aplplications is continuosly running the same file...logrotate does something like:

1.- mv <fileorigin> <filecopy>
2.- gzip <filecopy>
3.- create a new <fileorigin>

In the step 3, my application can not write yet in the <fileorigin>...Smilie

1.-
Code:
5127 Oct 30 09:52 RmiService.stdout

2.-
Code:
1610 Oct 30 09:52 RmiService.stdout-20131030.gz
   0 Oct 30 09:54 RmiService.stdout

3.- Application is running and try to write...
Code:
  0 Oct 30 09:54 RmiEcpService.stdout


Last edited by Scrutinizer; 10-30-2013 at 06:35 AM.. Reason: code tags added
# 4  
Old 10-30-2013
If you move the file, the writing will continue in the moved file...
I either stop the writing ( daemon ...) and restart or if cannot, do:
Code:
mv file.last file.beforelast
cp -p file  file.last
> file   # zero the file...
#gzip if you wish:

put in a script so it is executed flawlessly so I have less loss possible and choose a moment I know with minimum risk of activity to execute the code...
# 5  
Old 10-30-2013
Sorry vbe, but if i understand that you write, it does not work

Code:
 5127 Oct 30 11:42 RmiService.stdout
mv RmiService.stdout RmiService.stdout.bak
5127 Oct 30 11:42 RmiService.stdout.bak
cp -p RmiService.stdout.bak RmiService.stdout
5127 Oct 30 11:42 RmiService.stdout
5127 Oct 30 11:42 RmiService.stdout.bak
> RmiService.stdout
5127 Oct 30 11:42 RmiService.stdout.bak
0 Oct 30 11:44 RmiService.stdout

--- Apliccation writes in this moment
    0 Oct 30 11:44 RmiService.stdout
5485 Oct 30 11:44 RmiService.stdout.bak  --> Itīs using this...

or----

Code:
 5127 Oct 30 11:50 RmiService.stdout
cp -p RmiService.stdout.bak RmiService.stdout.bak2
5127 Oct 30 11:50 RmiService.stdout
5127 Oct 30 11:50 RmiService.stdout.bak
> RmiService.stdout
5127 Oct 30 11:50 RmiService.stdout.bak
  0 Oct 30 11:56 RmiService.stdout

--- Apliccation writes in this moment
 5127 Oct 30 11:50 RmiService.stdout.bak
5485 Oct 30 11:57 RmiService.stdout --> Itīs using this...

In the last code the problem is the size os the file...that will be 358 (5485-5127)...
# 6  
Old 10-30-2013
In my script you move the LAST backup that means if you have one..., NOT the active fille that is called "file" in my example the active file is the one you copy and nul after
# 7  
Old 10-30-2013
Yeah, i did that Smilie

Code:
  5127 Oct 30 13:38 RmiEcpService.stdout
cp -p RmiEcpService.stdout RmiEcpService.stdout.bak
>RmiEcpService.stdout
5127 Oct 30 13:38 RmiEcpService.stdout.bak
   0 Oct 30 13:38 RmiEcpService.stdout

-- Application writes in this moment
5127 Oct 30 13:38 RmiEcpService.stdout.bak
 5483 Oct 30 13:38 RmiEcpService.stdout

.....and the same before...the problem is the size os the file...that will be 358 (5485-5127)...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Logs do not rotate

My problem: Both access and error logs do not rotate any more and get really large. They are located here: /srv/www/+vHost name here+/logs/ Configuration seems to be here: /etc/logrotate.conf => looks OK, including "size 10M" to avoid large files (/etc/logrotate.d => is empty) manually... (4 Replies)
Discussion started by: floko
4 Replies

2. Shell Programming and Scripting

Log rotate

Hi, I have below script in logrotate.d to rotate logs. logs are not rotating after the file grow to 1k, do you have any idea? Is it because of it just only 1K? Please let me know if the below syntax is in correct. # more trotate /sourcepath/*/servers/*/logs/*log... (2 Replies)
Discussion started by: lpprasad321
2 Replies

3. Shell Programming and Scripting

Script to rotate file log

Hi Experts, I have script on crontab and give output quite large. I would like to know how to create rotate log when the size of log maximum 50MB if the test.log is 50MB then create test.0 Thanks Edy (2 Replies)
Discussion started by: edydsuranta
2 Replies

4. Shell Programming and Scripting

Help with a rotate log script

Hi all, Am trying to write my own log rotate script. Curremtly, what I have is as below: #!/bin/ksh file_to_rotate=${1} x=${2} while ] do let curr=${x} let prev=${x}-1 if ] ; then #echo "cp -p ${file_to_rotate} ${file_to_rotate}.${curr}" cp -p... (7 Replies)
Discussion started by: newbie_01
7 Replies

5. UNIX for Dummies Questions & Answers

Rotate logs every 1 hour

Hello All, I am learning unix and basically I want to rotate one of my application logs every 1 hour. I need to rotate that file every one hour. I looked in the forums and googled.. but couldn;t get proper information. Requesting you all to kindly guide me. Our application is running on... (4 Replies)
Discussion started by: arunpvp
4 Replies

6. Programming

Rotate an array

i have an array a={1,2,3,4,5} the output should be a= {4,5,1,2,3} please help me writin this program in c. (10 Replies)
Discussion started by: pgmfourms
10 Replies

7. Shell Programming and Scripting

Script for Log Rotate

Hello, I only know the basic for shell programing. I need help for this, I thinks this is a basic for anyone who know a litle of shell scripting. I need creat a script for a rotatate logs, when a filesystem is full. I have a filesystem. The rotate consist in zip the current log (copy) and... (1 Reply)
Discussion started by: El Rengo
1 Replies

8. UNIX for Advanced & Expert Users

log rotate

hi , what is the meaning of log rotate? how do i rotate /var/adm/wtmps log and gzip it? (6 Replies)
Discussion started by: cromohawk
6 Replies

9. Shell Programming and Scripting

Help with script, trying to get tcpdump and rotate the file every 300 seconds

Greetings, I just started using scripting languages, im trying to get a tcpdump in a file, change the file name every 5mins ... this is what i have but its not working ... any suggestions? #!/bin/bash # timeout.sh #timestamp format TIMESTAMP=`date -u "+%Y%m%dT%H%M%S"` #tdump =`tcpdump... (3 Replies)
Discussion started by: livewire
3 Replies

10. Shell Programming and Scripting

how to rotate log files

hi friends i need a shell script to rotate the logs in a directory, dated n days back. can anybody of help. appreciate.. (0 Replies)
Discussion started by: satya_skm
0 Replies
Login or Register to Ask a Question