Sponsored Content
Top Forums Shell Programming and Scripting set a variable and detect error status... Post 302432009 by chebarbudo on Wednesday 23rd of June 2010 12:52:56 PM
Old 06-23-2010
Thanks bartus11
Your script works indeed.
The thing is that I'm working with big files and I wanted to avoid using tar twice.
A simple tar -tzf can take up to 4 seconds. Files are processed one by one and your script would double the time necessary to complete all files.
If you find any other way to avoid that, it would be great.
Thanks anyway for your proposal.
Santiago

---------- Post updated at 18:52 ---------- Previous update was at 18:36 ----------

Actually, I need to invoke tar twice in my script and I wanted to avoid invoking it three times.
First time I get the md5sum, second time, I read the statistics from tar -t.
Then I insert those informations in a database.
So here is what I did:
Code:
file_md5=$(tar -xzOf "$1" 2>/dev/null | md5sum | cut -b-32)
(tar -tzvf "$1" 2>/dev/null || echo error) | while read -r file_mod file_owner dummy file_date file_time name; do
	query="UPDATE uploaded
	SET file_mod = '${file_mod:1}',
	file_owner = '${file_owner%%/*}',
	file_group = '${file_owner#*/}',
	file_time = '$file_date $file_time',
	file_md5 = '$file_md5',
	name = \"$name\",
	status = IF('$file_mod' == 'error', 3, status)
	WHERE id = $id"
done

Thx for your help
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Export command giving Variable Name vs the Value set for the Variable

I'm having an issue when I export within my program. I'm getting the variable name, not the variable value. I have a configuration file (config.txt) that has the values of the variables set as so: set -a export ARCHIVEPOSourceDir="/interfaces/po/log /interfaces/po/data" export... (2 Replies)
Discussion started by: ParNone
2 Replies

2. Red Hat

Installing RedHat 8.0 onto Dell PowerEdge SC1425 - hdc: status error: status = 0x58

I have successfully installed RedHat 8.0 onto a Dell PowerEdge SC1425 today. This server has two SATA hard drives, and an IDE DVD-ROM drive. Using the following kernel parameters, i successfully installed across both hard drives from CD: ide0=0x1f0,0x3f6,14 vga=791 resolution=1024x768 expert... (5 Replies)
Discussion started by: fishsponge
5 Replies

3. UNIX for Dummies Questions & Answers

$? = Exit status variable

hi, exit status variable $?, returns some digits. 0 ---> succes. 1..126 Failure (the program itself will decide what the numbers mean) 127 Command not found 128..254 The program did not exit normally. (E.g., it crashed, or received a signal) 255 Invalid exit code well, if $?... (4 Replies)
Discussion started by: dummydba
4 Replies

4. UNIX for Dummies Questions & Answers

Environment Status Variable

Hi all, understood that upon executing a script, we can get various in-built variable like: $? => Exit status $$ => Process PID ${0##*/} => Process ID Name Is there any readily available lookup table as to what are the available status variablee, and what do they mean... Thanks in... (2 Replies)
Discussion started by: srage
2 Replies

5. Windows & DOS: Issues & Discussions

Autosys unable to set the job to the status of FAILED

Hi The Autosys job that call DOS batch file which in turn calls java and this java program has successful completion though there are series of exception occurred in the data it handles and want the job to be set to Fail in its autosys, how could it be done? a.bat { java sample.class ... (1 Reply)
Discussion started by: muthupus
1 Replies

6. Shell Programming and Scripting

how to detect port open status?

I write a script which will stop an application, then restart it. Sometimes it is succesful, sometimes not. The problem is, when stop the application, some ports are still listenning (or not released). When start the application, it reports that ports are used, and can't continues. I use... (1 Reply)
Discussion started by: rdcwayx
1 Replies

7. HP-UX

What is the use of command set -- and set - variable?

Hi, I am using hp unix i want to know the use of the following commands set -- set - variable thanks (4 Replies)
Discussion started by: gomathi
4 Replies

8. Shell Programming and Scripting

script to detect a file from inserted usb and puts into a Variable

There is a same named log file that I have on my 2 different android phones. When I plug it into my computer, it appears in the media folder, For example the first android phone: /media/F6BA-0AF5/folder/A.log I want to put that into a variable to be manipulated.... (3 Replies)
Discussion started by: tobenguyen
3 Replies

9. AIX

How to detect the network cable status with c programming on AIX

Hello, Is there any API or any other approach to detect whether the network cable is connected to the network adapter, say, en0, en1 or en2? The OS is AIX6.1. Thank you. (4 Replies)
Discussion started by: zephyrbj
4 Replies

10. Shell Programming and Scripting

Detect error and exit

Hi, I am using Jenkins and have integrated JMeter for testing. JMeter is generating a file with results properly using shell script. I have to validate the results and exit the shell with non-zero so my jenkins job gets failed. I tried multiple ways to grep the output file and read the results... (2 Replies)
Discussion started by: sitaram
2 Replies
Dist::Zilla::App::Command::build(3pm)			User Contributed Perl Documentation		     Dist::Zilla::App::Command::build(3pm)

NAME
Dist::Zilla::App::Command::build - build your dist VERSION
version 4.300020 SYNOPSIS
dzil build [ --trial ] [ --tgz | --no-tgz ] [ --in /path/to/build/dir ] DESCRIPTION
This command is a very thin layer over the Dist::Zilla "build" method, which does all the things required to build your distribution. By default, it will also archive your distribution and leave you with a complete, ready-to-release distribution tarball. EXAMPLE
$ dzil build $ dzil build --no-tgz $ dzil build --in /path/to/build/dir OPTIONS
--trial This will build a trial distribution. Among other things, it will generally mean that the built tarball's basename ends in -TRIAL. --tgz | --no-tgz Builds a .tar.gz in your project directory after building the distribution. --tgz behaviour is by default, use --no-tgz to disable building an archive. --in Specifies the directory into which the distribution should be built. If necessary, the directory will be created. An archive will not be created. AUTHOR
Ricardo SIGNES <rjbs@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Ricardo SIGNES. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-21 Dist::Zilla::App::Command::build(3pm)
All times are GMT -4. The time now is 04:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy