<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>108.bz &#187; Backup</title>
	<atom:link href="http://www.108.bz/posts/tag/backup/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.108.bz</link>
	<description>Wandering futilities...</description>
	<lastBuildDate>Fri, 27 May 2011 09:08:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Recovering NTBackup Tapes</title>
		<link>http://www.108.bz/posts/it/recovering-ntbackup-tapes/</link>
		<comments>http://www.108.bz/posts/it/recovering-ntbackup-tapes/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 10:36:43 +0000</pubDate>
		<dc:creator>Giuliano</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Recovery]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.108.bz/?p=539</guid>
		<description><![CDATA[This article will show you how to handle tape backups generated by NTBackup, turn them into a .BKF file (using Linux) and extract specific files (using Linux/Windows). Some of the stuff explained here may also be useful when dealing with corrupt tapes/files, and may work for any backup software that generates MTF (Microsoft Tape Format) [...]]]></description>
			<content:encoded><![CDATA[<p>This article will show you how to handle tape backups generated by <a href="http://en.wikipedia.org/wiki/Ntbackup">NTBackup</a>, turn them into a .BKF file (using Linux) and extract specific files (using Linux/Windows). Some of the stuff explained here may also be useful when dealing with corrupt tapes/files, and may work for any backup software that generates MTF (Microsoft Tape Format) output, such as maybe Symantec Backup Exec<sup class='footnote'><a href='#fn-539-1' id='fnref-539-1'>1</a></sup>.</p>
<p>The scenario: an old machine (hosting a not so important app) crashes badly due to multiple disk failures. O.S. (Windows 2000 Server) won&#8217;t boot anymore. Backups were directed to a local <a href="http://en.wikipedia.org/wiki/Digital_Data_Storage">DDS</a> tape drive, the only one of its kind surviving in the whole Company. While reinstalling the app to another server, I need to recover some files and have access to the pre-crash registry.</p>
<p>And here&#8217;s the plan:</p>
<ul>
<li>Boot the half-dead server with the invaluable <a href="http://www.sysresccd.org/Main_Page">SystemRescueCd</a>.</li>
<li>Put the last available tape backup in the drive.</li>
<li>Save an <i>image</i> of the tape somewhere.</li>
<li>Extract stuff from the image.</li>
</ul>
<p>When SystemRescueCd is running and network connected, make available a shared folder:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">root@sysresccd /root % mkdir /mnt/storagespace<br />
root@sysresccd /root % mount -t cifs //fileserver/e$ /mnt/storagespace -o username=administrator,workgroup=domain.local</div></div>
<p>Then, generate the image. NTBackup tape backups are spread across multiple &#8220;tape files&#8221;. If you read the tape from the beginning, sooner or later you will hit EOF (an end-of-file condition). <i>Don&#8217;t</i> rewind it: go on to the next file instead. Repeat until there are no more files to read.<br />
On Unix, the first SCSI tape device is mapped to <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">/dev/st0</span> <i>and</i> <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">/dev/nst0</span>. When a process finishes reading from <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">/dev/st0</span>, the tape is implicitly rewound. Viceversa, using <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">/dev/nst0</span> doesn&#8217;t cause any rewind; tape will stay positioned right after the last block read.</p>
<p>Just in case, perform a manual rewind:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">root@sysresccd /mnt/storagespace/temp % mt -f /dev/st0 rewind</div></div>
<p>Then, try to guess the right block size. It seems to be set at 16K. Should this method fail, check the &#8220;How do I find out tape block size?&#8221; method <a href="http://www.cyberciti.biz/faq/rhel-centos-debian-set-tape-blocksize/">here</a>.</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">root@sysresccd /mnt/storagespace/temp % mt -f /dev/st0 status<br />
SCSI 2 tape drive: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
File number=0, block number=0, partition=0.<br />
Tape block size 16384 bytes. Density code 0x26 (DDS-4 or QIC-4GB).<br />
Soft error count since last status=0<br />
General status bits on (41010000):<br />
&nbsp;BOT ONLINE IM_REP_EN</div></div>
<p>Start reading (by means of <a href="http://en.wikipedia.org/wiki/Dd_(Unix)">dd</a>) with the specified block size. See? We&#8217;re using the non-rewinding tape device <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">/dev/nst0</span>.</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">root@sysresccd /mnt/storagespace/temp % for f in `seq 1 10`; do echo dd if=/dev/nst0 of=tapeblock`printf &quot;%<br />
06g&quot; $f`.bin ibs=16384; done<br />
dd if=/dev/nst0 of=tapeblock000001.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000002.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000003.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000004.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000005.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000006.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000007.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000008.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000009.bin ibs=16384<br />
dd if=/dev/nst0 of=tapeblock000010.bin ibs=16384<br />
root@sysresccd /mnt/storagespace/temp % dd if=/dev/nst0 of=tapeblock000001.bin ibs=16384<br />
1+0 records in<br />
32+0 records out<br />
16384 bytes (16 kB) copied, 0.0341089 s, 480 kB/s<br />
root@sysresccd /mnt/storagespace/temp % dd if=/dev/nst0 of=tapeblock000002.bin ibs=16384<br />
270540+0 records in<br />
8657280+0 records out<br />
4432527360 bytes (4.4 GB) copied, 7666.22 s, 578 kB/s<br />
[..]<br />
root@sysresccd /mnt/storagespace/temp % dd if=/dev/nst0 of=tapeblock000007.bin ibs=16384<br />
4+0 records in<br />
128+0 records out<br />
65536 bytes (66 kB) copied, 0.1176 s, 557 kB/s<br />
root@sysresccd /mnt/storagespace/temp % dd if=/dev/nst0 of=tapeblock000008.bin ibs=16384<br />
0+0 records in<br />
0+0 records out<br />
0 bytes (0 B) copied, 0.00461986 s, 0.0 kB/s<br />
root@sysresccd /mnt/storagespace/temp % dd if=/dev/nst0 of=tapeblock000009.bin ibs=16384<br />
dd: reading `/dev/nst0': Input/output error<br />
0+0 records in<br />
0+0 records out<br />
0 bytes (0 B) copied, 0.00356835 s, 0.0 kB/s</div></div>
<p>Reads beyond the last file will result in an &#8220;Input/output error&#8221;.</p>
<p><a href="http://www.108.bz/wp-content/uploads/2010/08/tape1.png"><img src="http://www.108.bz/wp-content/uploads/2010/08/tape1-300x120.png" alt="Tape image chunks" title="Tape image chunks" width="300" height="120" class="alignnone size-medium wp-image-551" /></a></p>
<p>It&#8217;s time to join the <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">.bin</span> files into a single one: the tape image (maybe using <a href="http://www.freebyte.com/hjsplit/">HJSplit</a> for the task). You could&#8217;ve been more clever than me and appended <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">dd</span>&#8216;s output to a single file, thus skipping the join step and saving space. I didn&#8217;t do it because I wanted to see if any tape file was corrupted (and be able to re-read it, if needed).</p>
<p>I called the tape image &#8220;backup.bkf&#8221;, even though it&#8217;s not a true <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">.BKF</span> file&#8230; As we said, it&#8217;s a tape image. NTBackup is not able to read it, whereas the abundance of &#8220;BKF recovery&#8221; software can. Before going on, let me polemicize a bit. There are many, almost identical, software of this kind. I&#8217;ve got the feeling that they all &#8220;borrow&#8221; from <a href="http://www.codeproject.com/KB/files/BackupReader.aspx">this</a> open source BKF reader<sup class='footnote'><a href='#fn-539-2' id='fnref-539-2'>2</a></sup>. Looks like different commercial developers grabbed the same source, embellished the GUI just a bit, and made a product to sell. How lame. But it turns out that you don&#8217;t need to pay a cent to extract files from a .BKF or tape image, on Linux or Windows as well.</p>
<p>On windows, get <a href="http://www.fpns.net/willy/msbackup.htm">ntbkup</a> by William T. Kranz . I use the (optional) <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">-s3</span> switch to target set 3 which I know holds the System State.</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">C:\temp\x&gt;..\ntbkup.exe ..\backup.bkf -s3 -l&quot;\Registry:&quot;<br />
<br />
NTBKUP Ver 1.07c compiled for WIN32 with MAX_PATH = 100<br />
&nbsp; &nbsp;compiled for 64 bit file offsets<br />
Copyright (C) 2003 William T. Kranz<br />
NTBKUP comes with ABSOLUTELY NO WARRANTY<br />
Free software distributed under the terms of the GNU General Public license<br />
See http://www.gnu.org/licenses/gpl.html for license information<br />
Check http://www.fpns.net/willy/msbackup.htm for Updates &amp; Documentation<br />
<br />
resrict operations to backup set 3<br />
device name: C:<br />
volume name: Local disk<br />
device name: D:<br />
volume name: Volume<br />
Set 3:<br />
Name: Company lun-29-06-2009-23.04<br />
Description:<br />
User: DOMAIN\administrator<br />
<br />
device name: System state data from 0x36113d956 to 0x3611ec956<br />
length 716800 &nbsp;atrib 0x20 &nbsp;05/14/2008 &nbsp;03:10:38 PM<br />
extracing: default:<br />
&nbsp;data from 0x3611ecd4e to 0x3611f2d4e<br />
length &nbsp;24576 &nbsp;atrib 0x20 &nbsp;06/29/2009 &nbsp;09:42:50 PM<br />
extracing: SAM:<br />
&nbsp;data from 0x3611f3156 to 0x3611fe156<br />
length &nbsp;45056 &nbsp;atrib 0x20 &nbsp;06/29/2009 &nbsp;11:00:07 PM<br />
extracing: SECURITY:<br />
&nbsp;data from 0x3611fe556 to 0x3621cb556<br />
length 16568320 &nbsp;atrib 0x20 &nbsp;06/30/2009 &nbsp;01:35:59 AM<br />
extracing: software:<br />
&nbsp;data from 0x3621cb952 to 0x362487952<br />
length 2867200 &nbsp;atrib 0x20 &nbsp;06/29/2009 &nbsp;10:42:23 PM<br />
extracing: system:<br />
&nbsp;data from 0x362487d2e to 0x3624aad2e<br />
length 143360 &nbsp;atrib 0x20 &nbsp;06/04/2003 &nbsp;01:24:14 PM<br />
extracing: userdiff:</div></div>
<p>Bingo, I can load the <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">software</span> hive with &#8220;reg load&#8221; (see <a href="http://www.petri.co.il/reg_command_in_windows_xp.htm">here</a>) and extract the keys I need.</p>
<p>Should you prefer so, download <a href="http://gpl.internetconnection.net/files/mtftar.tar.gz">mtftar</a> on your Linux box, compile it and run something like:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./mtftar -f /mnt/storagespace/temp/backup.bkf | tar xvf - &quot;Registry&quot;</div></div>
<p>Extract the other files you need and voilà&#8230;</p>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-539-1'>ex Veritas Backup Exec <span class='footnotereverse'><a href='#fnref-539-1'>&#8617;</a></span></li>
<li id='fn-539-2'>There&#8217;s no executable in the archive. You need Visual Studio and compile it for yourself. <span class='footnotereverse'><a href='#fnref-539-2'>&#8617;</a></span></li>
</ol>
</div>
 <img src="http://www.108.bz/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=539" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.108.bz/posts/it/recovering-ntbackup-tapes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abusing Backup Exec&#8217;s internal database</title>
		<link>http://www.108.bz/posts/it/abusing-backup-exec-internal-database/</link>
		<comments>http://www.108.bz/posts/it/abusing-backup-exec-internal-database/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 23:18:35 +0000</pubDate>
		<dc:creator>Giuliano</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Backup Exec]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[Symantec]]></category>

		<guid isPermaLink="false">http://www.108.bz/?p=348</guid>
		<description><![CDATA[What&#8217;s the point of having data stored somewhere if you can&#8217;t access it and turn it into useful information? Of course the means to do so should be safe, supported, non destructive and flexible if not easy. But usually all you&#8217;re left with is some kind of &#8220;reporting&#8221; feature that necessarily doesn&#8217;t do exactly what [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s the point of having data stored somewhere if you can&#8217;t access it and turn it into useful information? Of course the means to do so should be safe, supported, non destructive and flexible if not easy. But usually all you&#8217;re left with is some kind of &#8220;reporting&#8221; feature that necessarily doesn&#8217;t do <i>exactly</i> what you need, doesn&#8217;t output in a convenient format and so on.</p>
<p>But enough squabbling: in this article I&#8217;ll deal with Backup Exec&#8217;s internal database.<br />
Here&#8217;s what I&#8217;m trying to do:</p>
<ul>
<li>Look up all the &#8220;Duplicate&#8221; Jobs. Show when they started, how long they took to complete, the rate, &#8230;</li>
<li>For each one of them, try and find the relevant tapes.</li>
</ul>
<p>I will use the generated report to know which media I should eject out of the library for safe storage. The report will also allow me to quickly and easily update the Excel worksheets where we keep track of how backup&#8217;s going.</p>
<p>Our BE database runs on Microsoft SQL Server Express. First thing to do is configure the instance to allow remote TCP/IP connections. Refer to this <a href="http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx">post</a>, and <a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277">KB914277</a>.</p>
<p>Then I&#8217;m able to point <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#038;FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796">SQL Server Management Studio</a> at it<sup class='footnote'><a href='#fn-348-1' id='fnref-348-1'>1</a></sup>, and see how the BEDB database is organized. </p>
<p>The view named <span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">vwJobHistorySummary</span> is the equivalent of what is seen in BE&#8217;s GUI, under <i>Job Monitor</i> &rarr; <i>Job List</i> &rarr; <i>Job History</i>. Easy enough to find out.</p>
<p>What&#8217;s not that immediate to guess is how Media IDs relate to Job IDs: skimming through the database tables doesn&#8217;t help&#8230; How could you reverse engineer BE GUI and discover what SQL queries it&#8217;s doing to carry out its job? In fact, there&#8217;s a way to &#8220;sniff&#8221; SQL queries while they&#8217;re running:</p>
<ul>
<li>open up BE GUI and select (but don&#8217;t open) a completed Job in <i>Job History</i>.</li>
<li>run <i>SQL Server Profiler</i>.</li>
<li>create a <i>New Trace</i>.</li>
<li>Under the <i>Event Selection</i> tab, deselect everything except <i>SQL:BatchStarting</i>. This is not a particularly crowded database, hence no need for filters.</li>
<li>Double click on the previously selected Job; SQL Profiler should capture a query similar to:</li>
</ul>
<div class="codecolorer-container sql blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> dbo<span style="color: #66cc66;">.</span>vwJobHistory <span style="color: #993333; font-weight: bold;">WHERE</span><br />
JobHistoryID<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'8507cfa9-8417-44ae-88e6-9ac19a0333a9'</span> <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #66cc66;">&#91;</span>JHD<span style="color: #66cc66;">.</span>StartTime<span style="color: #66cc66;">&#93;</span><br />
<span style="color: #993333; font-weight: bold;">FOR</span> XML AUTO</div></div>
<p>Looks like Job details are fetched as globs of XML data, perfect to throw our beloved Regular Expressions at.</p>
<p>You can find the script I made at the end of the post. The obligatory notes are:</p>
<ul>
<li>By convention, in our scenario, Policies used to create Duplicate jobs bear a name ending with &#8220;-D&#8221;. I&#8217;m SELECting the last Job IDs with a similar pattern; change it according to your needs, for instance if you&#8217;re interested in all the tape directed Jobs (and not just the Duplicate ones).</li>
<li>Columns are as follow:
<ul>
<li>Job name. In case you wonder, &#8220;FSIWDTH&#8221; means: Full Saturday, Incremental Weekdays, Duplicate on Thursday.</li>
<li>Actual start timestamp.</li>
<li>End timestamp.</li>
<li>Elapsed time (seconds).</li>
<li>Total bytes written. No bytes written? I skip this Job.</li>
<li>Rate (MBytes/minute). Oddly, BE doesn&#8217;t seem to always get this value right.</li>
</ul>
</li>
<li>The &#8220;<span style="font-family: Bitstream Vera Sans Mono,Courier New,monospace;">convert( varchar(</span>&#8221; stuff in the main query is needed to fetch dates in a non driver-dependent format (see FreeTDS <a href="http://www.freetds.org/faq.html#dateformat">FAQ</a>).</li>
<li>Dates are stored in UTC timezone. I make sure of adding the local TZ offset before printing them out.</li>
</ul>
<p>Example output:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./be_job_media_report.pl <br />
Sel SERVER03-FSIWDTH-D;20100311 09:15;20100312 11:26;94239;602103130444;405<br />
AK8008L3<br />
AK8011L3<br />
Sel SERVER07-FSIWDTH-D;20100311 09:00;20100311 09:15;921;5133161638;452<br />
AK8011L3<br />
Sel SERVER16-FSIWDWE-D;20100310 10:35;20100310 17:34;25155;5352;0<br />
AK8011L3<br />
Sel SERVER13-FSIWDWE-D;20100310 09:00;20100310 17:29;30572;230425324573;515<br />
AK7140L1<br />
AK8011L3</div></div>
<p>And the script itself:</p>
<div class="codecolorer-container perl blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;height:300px;"><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl </span><br />
<span style="color: #666666; font-style: italic;"># Giuliano - http://www.108.bz</span><br />
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> DBI<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> List<span style="color: #339933;">::</span><span style="color: #006600;">Uniq</span> <a href="http://perldoc.perl.org/functions/qw.html"><span style="color: #000066;">qw</span></a><span style="color: #009900;">&#40;</span>uniq<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> Time<span style="color: #339933;">::</span><span style="color: #006600;">Piece</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">sub</span> pretty_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$)</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$time</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$time</span> <span style="color: #339933;">=</span> Time<span style="color: #339933;">::</span><span style="color: #006600;">Piece</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">strptime</span><span style="color: #009900;">&#40;</span><a href="http://perldoc.perl.org/functions/shift.html"><span style="color: #000066;">shift</span></a><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%Y-%m-%d %H:%M:%S&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 2010-03-10 16:34:19</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$time</span> <span style="color: #339933;">+=</span> <span style="color: #0000ff;">$time</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">localtime</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">tzoffset</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/return.html"><span style="color: #000066;">return</span></a> <span style="color: #0000ff;">$time</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">strftime</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'%Y%m%d %H:%M'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">sub</span> print_last_jobids<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$$</span><span style="color: #339933;">;</span><span style="color: #0000ff;">$)</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$dbh</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$number</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$jobname_like</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$q</span> <span style="color: #339933;">=</span> <span style="color: #cc0000; font-style: italic;">&lt;&lt;EOQ;<br />
SELECT TOP 20 JobHistoryID, JobName,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convert( varchar(30), OriginalStartTime, 120),<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convert( varchar(30), ActualStartTime, 120),<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convert( varchar(30), EndTime, 120),<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ElapsedTimeSeconds,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FinalJobStatus, FinalErrorCode, TotalDataSizeBytes, TotalRateMBMin<br />
FROM vwJobHistorySummary<br />
-- WHERE<br />
-- Jobname LIKE '$jobname_like'<br />
ORDER BY ActualStartTime DESC<br />
EOQ</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$q</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/-- (WHERE)/$1/</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$jobname_like</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$q</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/-- (Jobname LIKE)/$1/</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$jobname_like</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sth</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$dbh</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$q</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$sth</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$row</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$row</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$sth</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">fetchrow_arrayref</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;"># TotalDataSizeBytes &gt; 0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pretty_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pretty_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/printf.html"><span style="color: #000066;">printf</span></a> <span style="color: #ff0000;">&quot;%s;%.f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><a href="http://perldoc.perl.org/functions/join.html"><span style="color: #000066;">join</span></a> <span style="color: #ff0000;">';'</span><span style="color: #339933;">,</span> <span style="color: #339933;">@</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$row</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; print_media_by_jobhistoryid<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$dbh</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$row</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">sub</span> print_media_by_jobhistoryid<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$$</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$dbh</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$jobid</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sth</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$dbh</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&lt;&lt;</span>EOQ<br />
SELECT <span style="color: #339933;">*</span> FROM dbo<span style="color: #339933;">.</span>vwJobHistory where<br />
JobHistoryID<span style="color: #339933;">=</span><span style="color: #ff0000;">'$jobid'</span> ORDER BY <span style="color: #009900;">&#91;</span>JHD<span style="color: #339933;">.</span>StartTime<span style="color: #009900;">&#93;</span><br />
FOR XML AUTO<br />
EOQ<br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">$sth</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@media</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$row</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$row</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$sth</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">fetchrow_arrayref</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$record</span> <span style="color: #339933;">=</span> <a href="http://perldoc.perl.org/functions/join.html"><span style="color: #000066;">join</span></a> <span style="color: #ff0000;">';'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@$row</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/push.html"><span style="color: #000066;">push</span></a> <span style="color: #0000ff;">@media</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$1</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$record</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Data=&quot;(.*?)&quot;/</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <a href="http://perldoc.perl.org/functions/print.html"><span style="color: #000066;">print</span></a> <span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><a href="http://perldoc.perl.org/functions/join.html"><span style="color: #000066;">join</span></a> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> uniq<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><a href="http://perldoc.perl.org/functions/sort.html"><span style="color: #000066;">sort</span></a> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">@media</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">@media</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">### Main</span><br />
<br />
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$dbh</span> <span style="color: #339933;">=</span> DBI<span style="color: #339933;">-&gt;</span><span style="color: #006600;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'dbi:Sybase:server=bedbdatasource;database=BEDB'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'DOMAIN\username'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">'password'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <a href="http://perldoc.perl.org/functions/die.html"><span style="color: #000066;">die</span></a><span style="color: #339933;">;</span><br />
print_last_jobids<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$dbh</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'%-D'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<a href="http://perldoc.perl.org/functions/exit.html"><span style="color: #000066;">exit</span></a><span style="color: #339933;">;</span></div></div>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-348-1'>No need to enable TCP/IP on the instance, if Management Studio is installed on BE server itself <span class='footnotereverse'><a href='#fnref-348-1'>&#8617;</a></span></li>
</ol>
</div>
 <img src="http://www.108.bz/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=348" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.108.bz/posts/it/abusing-backup-exec-internal-database/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installing HP Data Protector Disk Agent on Linux</title>
		<link>http://www.108.bz/posts/it/installing-hp-data-protector-disk-agent-on-linux/</link>
		<comments>http://www.108.bz/posts/it/installing-hp-data-protector-disk-agent-on-linux/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:15:13 +0000</pubDate>
		<dc:creator>Giuliano</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://www.108.bz/?p=308</guid>
		<description><![CDATA[The backup server (Cell Manager) runs on Windows, while the client is an x86-64 Red Hat Enterprise Linux 5.3 . Turns out that you&#8217;ll need the CD image labeled &#8220;Installation Server 2 of 2&#8243; &#8211; B6960-10020.iso &#8211; for HP-UX (?) IA-64 (??). Of course it took me a while to figure it out&#8230; Head towards [...]]]></description>
			<content:encoded><![CDATA[<p>The backup server (Cell Manager) runs on Windows, while the client is an x86-64 Red Hat Enterprise Linux 5.3 . Turns out that you&#8217;ll need the CD image labeled &#8220;Installation Server 2 of 2&#8243; &#8211; B6960-10020.iso &#8211; for HP-UX (?) IA-64 (??). Of course it took me a while to figure it out&#8230;</p>
<p>Head towards <a href="http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=DP60SWD1&#038;jumpid=reg_R1002_USEN">HP Data Protector v6.0 software depot</a>, press &#8220;Receive for Trial&#8221;, select the stuff you&#8217;d like to download and fill in the form.</p>
<p>First (silly me!), I tried the obvious:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@lnxsrv01 ~]# mount -o loop &quot;/mnt/temp/temp/HP Data Protector for Linux x86-64 - Installation Server - 1 of 2 B6960-10011.iso&quot; /mnt/iso1<br />
[root@lnxsrv01 ~]# cd /mnt/iso1/LOCAL_INSTALL/<br />
[root@lnxsrv01 LOCAL_INSTALL]# ./omnisetup.sh -server bcksrv.domain.lan -install da<br />
&nbsp; No Data Protector/OmniBack software detected on the target system.<br />
<br />
&nbsp; Setup cannot continue, please insert the HP-UX installation CD (CD2)<br />
&nbsp; and run the installation script again, without options, it will continue.</div></div>
<p>Ok then, let&#8217;s try with the CD it&#8217;s suggesting:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@lnxsrv01 ~]# umount /mnt/iso1<br />
[root@lnxsrv01 ~]# mount -o loop &quot;/mnt/temp/temp/HP Data Protector for HP-UX IA-64 - Installation Server 2 of 2 B6960-10021.iso&quot; /mnt/iso1<br />
[root@lnxsrv01 ~]# cd /mnt/iso1/LOCAL_INSTALL/<br />
[root@lnxsrv01 LOCAL_INSTALL]# ./omnisetup.sh -server bcksrv.domain.lan -install da<br />
<br />
&nbsp; The omnisetup.sh script didn't finish last time <br />
&nbsp; Client still has to be installed. (omnicf da)<br />
<br />
&nbsp; The omnisetup.sh script can now continue the unfinished installation<br />
&nbsp; or it can ignore the saved state and start a new one.<br />
&nbsp; If you choose to ignore, the script will erase the saved state<br />
&nbsp; and will process only the command line options<br />
&nbsp; Do you want to continue the unfinished installation? (Y/n)<br />
&nbsp; <br />
&nbsp; Resuming (using possible CLI options)...<br />
&nbsp; <br />
&nbsp; No Data Protector/OmniBack software detected on the target system.<br />
<br />
<br />
<br />
&nbsp; Packets going to be (re)installed: omnicf &nbsp;da<br />
&nbsp; <br />
&nbsp; Unpacking selected packets from CD, please wait (5-10 minutes)...<br />
&nbsp; Unpacking complete!<br />
&nbsp; <br />
&nbsp; Installing Core (omnicf)...<br />
<br />
./omni_rinst.sh: line 494: uncompress: command not found<br />
64778 blocks<br />
/<br />
Data Protector Software package successfully installed<br />
&nbsp; Installing Disk Agent (da)...<br />
&nbsp; &nbsp; The packet file for this component does not exist<br />
&nbsp; &nbsp; Either it is not supported on this unix platform<br />
&nbsp; &nbsp; or some error occurred and the system cannot find<br />
&nbsp; &nbsp; the file /tmp/omni_tmp/packet.Z or installation<br />
&nbsp; &nbsp; is not started from appropriate CD<br />
&nbsp; <br />
&nbsp; Importing client to bcksrv.domain.lan...<br />
[12:1625] Import host failed.<br />
&nbsp; <br />
&nbsp; Current state was saved. &nbsp;Running the setup again without options<br />
&nbsp; will make the script to retry the failed operation<br />
&nbsp; Exiting...</div></div>
<p>Looks like something&#8217;s amiss. It seems that the &#8220;uncompress&#8221; error (judging on the install script source code) can be safely ignored (the script falls back on using gunzip), while the &#8220;Installing Disk Agent&#8221; error is bad. Some parts of the software have been installed correctly (telnet on agent&#8217;s TCP port 5555 works) but the Client can&#8217;t be imported on Cell Manager.</p>
<p>Let&#8217;s try with HP-UX CD 1:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@lnxsrv01 ~]# umount /mnt/iso1<br />
[root@lnxsrv01 ~]# mount -o loop &quot;/mnt/temp/temp/HP Data Protector for HP-UX IA-64 - Installation Server 1 of 2 B6960-10020.iso&quot; /mnt/iso1/<br />
[root@lnxsrv01 ~]# cd /mnt/iso1/LOCAL_INSTALL/<br />
[root@lnxsrv01 LOCAL_INSTALL]# ./omnisetup.sh -server bcksrv.domain.lan -install da<br />
<br />
&nbsp; The omnisetup.sh script didn't finish last time <br />
&nbsp; Client still has to be installed. (omnicf da)<br />
<br />
&nbsp; The omnisetup.sh script can now continue the unfinished installation<br />
&nbsp; or it can ignore the saved state and start a new one.<br />
&nbsp; If you choose to ignore, the script will erase the saved state<br />
&nbsp; and will process only the command line options<br />
&nbsp; Do you want to continue the unfinished installation? (Y/n)<br />
<br />
&nbsp; Resuming (using possible CLI options)...<br />
<br />
<br />
&nbsp; Data Protector version A.06.00 found<br />
<br />
<br />
<br />
&nbsp; Packets going to be (re)installed: omnicf &nbsp;da<br />
<br />
&nbsp; Unpacking selected packets from CD, please wait (5-10 minutes)...<br />
&nbsp; Unpacking complete!<br />
<br />
&nbsp; Installing Core (omnicf)...<br />
<br />
./omni_rinst.sh: line 494: uncompress: command not found<br />
64778 blocks<br />
/<br />
Data Protector Software package successfully installed<br />
&nbsp; Installing Disk Agent (da)...<br />
<br />
./omni_rinst.sh: line 494: uncompress: command not found<br />
Data Protector Software package successfully installed<br />
&nbsp; Importing client to bcksrv.domain.lan...<br />
Import host successful.<br />
&nbsp; <br />
&nbsp; Installation/Upgrade session finished.</div></div>
<p>Ok, the Client is indeed visible on Cell Manager.<br />
I guess that the three steps process I went through by &#8220;subsequent approximation&#8221; isn&#8217;t really necessary. You could have just as much luck by downloading B6960-10020.iso and running the installer&#8230;</p>
 <img src="http://www.108.bz/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=308" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.108.bz/posts/it/installing-hp-data-protector-disk-agent-on-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

