<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3023674627195806772</atom:id><lastBuildDate>Wed, 25 Jan 2012 10:17:46 +0000</lastBuildDate><category>postgres</category><category>zfs</category><category>grub</category><category>fechas</category><category>web</category><category>macosx</category><category>passwords</category><category>tomcat</category><category>projects</category><category>zone</category><category>hadoop</category><category>opinión</category><category>www</category><category>console</category><category>ips</category><category>tips</category><category>tuning</category><category>ipfilter</category><category>guasax</category><category>roles</category><category>autorizaciones</category><category>performance</category><category>freebsd</category><category>off topic</category><category>solaris</category><category>svm</category><category>backup</category><category>apache</category><category>virtualbox</category><category>cvs</category><category>me</category><category>uuid</category><category>java</category><category>havoctec</category><category>main</category><category>openindiana</category><category>nagios</category><category>ssh</category><category>privileges</category><category>mpxio</category><category>chroot</category><category>oracle</category><category>illumos</category><category>squid</category><category>rbac</category><category>activemq</category><category>instalacion</category><category>swap</category><category>teach</category><category>memcached</category><category>tunning</category><category>crossbow</category><category>dhcp</category><category>opensolaris</category><category>jms</category><category>subversion</category><title>Solaris Black Box :: El Blog en Castellano</title><description>Blog donde comento mis historias con el sistema operativo Sun Solaris durante todos estos años de lucha y placer.</description><link>http://sparcki.blogspot.com/</link><managingEditor>noreply@blogger.com (Urko Benito)</managingEditor><generator>Blogger</generator><openSearch:totalResults>231</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SolarisBlackBox" /><feedburner:info uri="solarisblackbox" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.feedness.com/alta/http://feeds.feedburner.com/SolarisBlackBox" src="http://www.feedness.com/ayuda/wp-content/square_b_sh_feed.gif">Subscribe with Feedness</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/SolarisBlackBox" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FSolarisBlackBox" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1464476823955237680</guid><pubDate>Fri, 20 Jan 2012 10:33:00 +0000</pubDate><atom:updated>2012-01-20T11:35:10.288+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>DBLink con parametros en PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hace unos días una persona me dejó una duda a modo de comentario en la entrada de &lt;a href="http://sparcki.blogspot.com/2010/02/dblinks-en-postgresql.html"&gt;DBLinks en PostgreSQL&lt;/a&gt;. Esta duda es sencilla, y, a la vez interesante, por eso, he decidido crear una entrada explicando la solución.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La duda&lt;/b&gt;&lt;br /&gt;
¿Es posible crear una vista en PostgreSQL utilizando un DBLink con parámetros dinámicamente?&lt;br /&gt;
&lt;br /&gt;
Es decir, lo que queremos es hacer los siguiente:&lt;br /&gt;
&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
SELECT device_name FROM remote_database_v(param1, param2); &lt;/blockquote&gt;
&lt;b&gt;La solución&lt;/b&gt;&lt;br /&gt;
Sobre si es posible &lt;b&gt;crear una Vista&lt;/b&gt; con un DBLink parametrizado, lo cierto es que no se puede, es decir, no podemos crear una vista pasando un argumento.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, podemos &lt;b&gt;crear un procedimiento&lt;/b&gt; que nos devuelva un tipo "record" y pasarle como parámetros la cadena de conexión, por ejemplo:&lt;br /&gt;
&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
CREATE OR REPLACE FUNCTION test_dblink_with_parameter(dbname character varying, dbhost character varying, dbuser character varying, dbuserpass character varying)&lt;br /&gt;
&amp;nbsp; RETURNS SETOF &lt;b&gt;record&lt;/b&gt; AS&lt;br /&gt;
$BODY$&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT t.device_name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dblink('dbname=' || $1 || '&amp;nbsp; port=5432 host=' || $2 || ' user=' || $3 ||' password=' || $4 , 'SELECT device_name FROM devices.as_device') as &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(device_name character varying);&lt;br /&gt;
$BODY$&lt;br /&gt;
&amp;nbsp; LANGUAGE &lt;b&gt;sql&lt;/b&gt; VOLATILE;&lt;/blockquote&gt;
Y ahora podemos llamar a nuestro procedimiento como si fuese una tabla o vista.&lt;br /&gt;
&lt;br /&gt;
Recordar que al ser de tipo "record" tenemos que decirle cómo es el formato del registro &amp;lt;AS (field1 type, field2 type, fieldn type)&amp;gt;, en nuestor caso devuelve el campo "as_device" que es de type "character varying".&lt;br /&gt;
&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
SELECT * FROM test_dblink_with_parameter('dbname','localhost','user','password') AS (device_name character varying);&lt;/blockquote&gt;
&lt;b&gt;Algunas Mejoras&lt;/b&gt;&lt;br /&gt;
En función de los datos que estamos obteniendo, podemos, por ejemplo, optimizar el coste &amp;lt;COST&amp;gt; y el número de rows &amp;lt;ROWS&amp;gt; del procedimiento. En el ejemplo, hemos dejado el coste y el número de rows "por defecto",&amp;nbsp; &lt;i&gt;COST 100&lt;/i&gt; y&amp;nbsp; &lt;i&gt;ROWS 100&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html"&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Copias de Seguridad en PostgreSQL&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz"&gt;PostgreSQL 9.0.3 x86 64bit para OpenIndiana con UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html"&gt;Instalación de OSSP UUID en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-1464476823955237680?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=BkmKLeWKRCY:LHJA1zWhm7U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=BkmKLeWKRCY:LHJA1zWhm7U:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/BkmKLeWKRCY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/BkmKLeWKRCY/dblink-con-parametros-en-postgresql.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2012/01/dblink-con-parametros-en-postgresql.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-7148486592337497862</guid><pubDate>Mon, 02 Jan 2012 08:36:00 +0000</pubDate><atom:updated>2012-01-02T09:36:55.579+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">off topic</category><title>Feliz 2012</title><description>Hemos pasado un año más, y como siempre, toca hacer un repaso a los 365 días que han transcurrido con sus buenos y malos momentos.&lt;br /&gt;
&lt;br /&gt;
Puedo decir que para mi el 2011 ha sido uno de los años más gratificantes -tanto personal como profesionalmente- y, espero que el 2012 sea aún mejor.&lt;br /&gt;
&lt;br /&gt;
Comencé una nueva aventura en &lt;a href="http://www.havoctec.com/"&gt;Havoc Technologies&lt;/a&gt; como responsable del área de I+D e IT, todo un desafío, pero, ya estamos en la rampa de salida con los productos de &lt;a href="http://www.safechildrenguardian.com/"&gt;Navegación Segura para Niños&lt;/a&gt; y&lt;a href="http://www.havoctec.com/soluciones-pymes.html"&gt; Sistemas de Control de Navegación para empresas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Todo ello basado en Solaris, PostgreSQL y Hadoop. Tecnologías que me encantan, y, aunque los comienzos no fueron fáciles, ya estamos a pleno rendimiento!&lt;br /&gt;
&lt;br /&gt;
Por ello, me gustaría desear a todos los SysAdmins un Feliz 2012&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un Saludo,&lt;br /&gt;
Urko&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-7148486592337497862?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=gp2qt69ypXY:KagvMT_H0Zw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gp2qt69ypXY:KagvMT_H0Zw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/gp2qt69ypXY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/gp2qt69ypXY/feliz-2012.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2012/01/feliz-2012.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1346262615895335796</guid><pubDate>Thu, 15 Dec 2011 09:54:00 +0000</pubDate><atom:updated>2011-12-15T11:11:26.317+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo ver el porcentaje de iNodes Libres y Usados en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Alguna vez os ha pasado encontrar en el &lt;i&gt;syslog&lt;/i&gt; el mensaje de "&lt;i&gt;out of inodes&lt;/i&gt;", si nunca lo habéis encontrado mejor :D.&lt;br /&gt;
&lt;br /&gt;
El problema viene porque el sistema de ficheros se está quedando -o se ha quedado sin &lt;i&gt;inodes&lt;/i&gt; libres- y no puede crear/modificar los archivos que contiene ese &lt;a href="http://sparcki.blogspot.com/2011/01/como-crear-un-filesystem-en-memoria.html"&gt;FileSystem&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Principalmente me he encontrado con este problema cuando parametrizaba un &lt;a href="http://sparcki.blogspot.com/2009/08/instalar-squid-en-solaris-10-parte-1.html"&gt;servidor de cache squid&lt;/a&gt; con unos valores muy elevados de L1 y L2 en &lt;i&gt;cache_dir&lt;/i&gt; y la unidad no era lo suficientemente grande.&lt;br /&gt;
&lt;br /&gt;
Simplemente deberemos utilizar la opción &amp;lt;-i&amp;gt; del comando &amp;lt;/usr/gnu/bin/df&amp;gt; de GNU ya que Solaris no lo incluye, por ejemplo:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;havoc@hseries:~$ df -i /&lt;br /&gt;Filesystem &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Inodes &amp;nbsp; IUsed &amp;nbsp; IFree IUse% Mounted on&lt;br /&gt;rpool/ROOT/solaris 861385 &amp;nbsp; 593804 &amp;nbsp;86079 1% &amp;nbsp; &amp;nbsp;/&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comandos básicos y no tan básicos de Solaris&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html"&gt;Instalación OpenIndiana paso a paso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/01/como-crear-un-filesystem-en-memoria.html"&gt;Cómo crear un FileSystem en Memoria en Solaris/OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-1346262615895335796?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=7tz2BIUs4qg:UeddC-p8y7A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=7tz2BIUs4qg:UeddC-p8y7A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/7tz2BIUs4qg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/7tz2BIUs4qg/como-ver-el-porcentaje-de-inodes-libres.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/12/como-ver-el-porcentaje-de-inodes-libres.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-2471820649923319056</guid><pubDate>Sat, 29 Oct 2011 22:09:00 +0000</pubDate><atom:updated>2011-10-30T00:09:11.952+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><title>Cómo desactivar ACPI en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html"&gt;OpenIndiana&lt;/a&gt; incluye soporte para el sistema ACPI, sin embargo, en algunas ocasiones, puede que nuestro sistema no pueda iniciarse correctamente, y debamos desactivarlas.&lt;br /&gt;
 &lt;br /&gt;
Para poder desactivar el sistema ACPI debemos utilizar la opción &amp;lt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;acpi-user-options=MODO&lt;/span&gt;&amp;gt; en nuesto menú de arranque grub en la sección de &amp;lt;kernel&amp;gt;, donde "modo" será uno de los siguientes valores:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;acpi-user-options=8&lt;/span&gt;, Desactiva el nuevo sistema ACPI y deja el sistema en formato "Legacy".&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;acpi-user-options=4&lt;/span&gt;, Desactiva el nuevo y sistema "Legacy" aunque permite seguir definiendo los &lt;a href="http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html"&gt;Threads de los micros HyperThread&lt;/a&gt; a traves de ACPI.&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;acpi-user-options=2&lt;/span&gt;, Desactiva todo el ACPI por completo.&lt;/li&gt;
&lt;/ul&gt;
Deberemos utilizar las opciones de mayor a menor -8,4,2- si encontramos problemas en nuestro OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Por ejemplo, si queremos poner la opción de "desactivado por completo" en la entrada "&lt;a href="http://www.havoctec.com/soluciones-para-colegios.html"&gt;HSeries&lt;/a&gt;", editaremos el archivo /rpool/boot/grub/menu.lst de la siguiente forma:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h1master:~$ &lt;b&gt;pfexec vi /rpool/boot/grub/menu.lst &lt;/b&gt;&lt;br /&gt;title HSeries&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;findroot (pool_rpool,0,a)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;bootfs rpool/ROOT/hseries&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;kernel$ /platform/i86pc/kernel/$ISADIR/unix -m verbose -B $ZFS-BOOTFS,acpi-user-options=2&lt;/span&gt;&lt;/b&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;module$ /platform/i86pc/$ISADIR/boot_archive&lt;/span&gt;&lt;/blockquote&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
Alguna vez podemos encontrarnos con problemas de arranque de OpenIndiana -sobre todo en VMWare ESX- que se solucionan en la mayoría de los casos poniendo la opción de ACPI a 2&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comandos básicos y no tan básicos de Solaris&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html"&gt;Instalación OpenIndiana paso a paso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html"&gt;Diferencias entre Procesadores Virtuales y Físicos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.oracle.com/danasblog/entry/configuring_solaris_acpi_at_boot"&gt;Configuring Solaris ACPI at boot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-2471820649923319056?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=-E-3YzrclP8:36-sxySl0Lo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=-E-3YzrclP8:36-sxySl0Lo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/-E-3YzrclP8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/-E-3YzrclP8/como-desactivar-acpi-en-openindiana.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><feedburner:origLink>http://sparcki.blogspot.com/2011/10/como-desactivar-acpi-en-openindiana.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-2227976307069214322</guid><pubDate>Sat, 24 Sep 2011 08:46:00 +0000</pubDate><atom:updated>2011-09-24T10:46:12.336+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Cómo clonar una tabla en PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Alguna vez hemos necesitado &lt;i&gt;clonar&lt;/i&gt; una tabla, tanto estructura como contenido desde el propio SQL sin tener que recurrir a &amp;lt;pg_dump&amp;gt;.&lt;br /&gt;
Tal vez alguno esté pensando en un &lt;b&gt;CREATE TABLE AS SELECT ...&lt;/b&gt; pero lo cierto es que esta solución no nos crea los modificadores, índices, etc.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, no os preocupéis, que en PostgreSQL se puede hacer todo, o casi, y este caso sí que está muy resuelto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pasos Ejemplo de Clonado "completo"&lt;/b&gt;&lt;br /&gt;
A continuación os muestro -de una forma sencilla- lo que vamos a hacer, paso a paso para que no resulte complicado:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Crearemos una tabla llamada &lt;b&gt;test&lt;/b&gt; con los campos &lt;b&gt;company&lt;/b&gt; y &lt;b&gt;homepage&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Añadiremos un &lt;b&gt;índice único&lt;/b&gt; en &lt;b&gt;company&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Añadiremos un par de compañías&lt;/li&gt;
&lt;li&gt;Crearemos una tabla nueva copiando el contenido de la tabla con un &lt;b&gt;CREATE TABLE&amp;nbsp; AS SELECT&lt;/b&gt; para comprobar cómo no clona los &lt;b&gt;índices, defaults, etc.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Utilizaremos un &lt;b&gt;clonado completo &lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
Una vez explicado, vamos a ponernos manos a la obra&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test(company VARCHAR(20) NOT NULL, homepage VARCHAR(40) NOT NULL);&lt;/b&gt;&lt;br /&gt;CREATE TABLE&lt;br /&gt;search=&amp;gt; &lt;b&gt;CREATE UNIQUE INDEX test_company_uq ON test(company);&lt;/b&gt;&lt;br /&gt;CREATE INDEX&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table "public.test"&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | not null&lt;br /&gt;&amp;nbsp;homepage | character varying(40) | not null&lt;br /&gt;Indexes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "test_company_uq" UNIQUE, btree (company)&lt;/blockquote&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;/div&gt;
&lt;br /&gt;
Ahora, añadimos un par de registros&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
search=&amp;gt; &lt;b&gt;INSERT INTO test(company,homepage) VALUES('SFChildren', 'http://www.sfchildren.com');&lt;/b&gt;&lt;br /&gt;INSERT 0 1&lt;br /&gt;search=&amp;gt; &lt;b&gt;INSERT INTO test(company,homepage) VALUES('HavocTec', 'http://www.havoctec.com');&lt;/b&gt;&lt;br /&gt;INSERT 0 1&lt;br /&gt;search=&amp;gt; &lt;b&gt;SELECT * FROM test;&lt;/b&gt;&lt;br /&gt;&amp;nbsp; company&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; homepage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;------------+---------------------------&lt;br /&gt;&amp;nbsp;SFChildren | http://www.sfchildren.com&lt;br /&gt;&amp;nbsp;HavocTec&amp;nbsp;&amp;nbsp; | http://www.havoctec.com&lt;br /&gt;(2 rows)&lt;/blockquote&gt;
Copiamos su contenido utilizando &lt;b&gt;CREATE TABLE newTable AS SELECT * FROM sourceTable &lt;/b&gt;y comprobaremos su resultado&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test2 AS SELECT * FROM test;&lt;/b&gt;&lt;br /&gt;SELECT&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test2&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table "public.test2"&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | &lt;br /&gt;&amp;nbsp;homepage | character varying(40) | &lt;/blockquote&gt;
Como podemos observar, lo primero que nos falta es el índice que hemos creado &amp;lt;test_company_uq&amp;gt; y los modificadores &amp;lt;NOT NULL&amp;gt; en ambos campos.&lt;br /&gt;
&lt;br /&gt;
Es decir, utilizando esta forma &lt;b&gt;copiamos el contenido y estructura de campos pero no sus modificadores&lt;/b&gt;, pero, que no cunda el pánico, vamos a ver cómo lo podemos hacer de una forma sencilla.&lt;br /&gt;
&lt;br /&gt;
Borramos la tabla test2 que hemos creado para poder volver a clonarla, esta vez de forma completa. &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
search=&amp;gt; &lt;b&gt;DROP TABLE test2;&lt;/b&gt;&lt;br /&gt;DROP TABLE&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
Clonar "todo", para ello vamos a utilizar los modificadores &lt;b&gt;LIKE tabla INCLUIDING [DEFAULTS | CONSTRAINTS | INDEXES]&lt;/b&gt;. En nuestro ejemplo, queremos "clonar" toda la estructura&amp;nbsp; así que utilizamos todas.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test2 (LIKE test INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES);&lt;/b&gt;&lt;br /&gt;CREATE TABLE&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test2&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table "public.test2"&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | not null&lt;br /&gt;&amp;nbsp;homepage | character varying(40) | not null&lt;br /&gt;Indexes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "test2_company_key" UNIQUE, btree (company)&lt;/blockquote&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Aunque el ejemplo es sencillo, la idea era mostrar la potencia de la opción LIKE ... INCLUIDING sin tener que mostrar una estructura muy compleja.&lt;br /&gt;
&lt;br /&gt;
Además, para aquellos que no os guste el SQL, siempre podéis utilizar el comando &amp;lt;pg_dump&amp;gt; para exportar una tabla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Copias de Seguridad en PostgreSQL - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalación de PostgreSQL en OpenIndiana - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-2227976307069214322?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=2ycWA12d36Q:gHxFCZwL5CU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=2ycWA12d36Q:gHxFCZwL5CU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/2ycWA12d36Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/2ycWA12d36Q/como-clonar-una-tabla-en-postgresql.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>2</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>40.8970673 -2.1399654 42.4155073 0.38688959999999994</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/09/como-clonar-una-tabla-en-postgresql.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-726516308592667348</guid><pubDate>Mon, 08 Aug 2011 08:53:00 +0000</pubDate><atom:updated>2011-08-08T10:53:43.268+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rbac</category><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo buscar el profile necesario para ejecutar un comando en RBAC</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hemos hablado sobre el &lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;RBAC, Modelo de Seguridad en Solaris y Cómo utilizarlo&lt;/a&gt;, sin embargo, cuando se está empezando a utilizarlo nos surge una duda: Qué profile asigno para que pueda ejecutar el comando XYZ?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Buscar el Profile más adecuado&lt;/b&gt;&lt;br /&gt;
Imaginemos por ejemplo que queremos asignar privilegios a un "rol" para que sea capaz de actualizar e instalar paquetes en nuestro Solaris/OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
Sabemos que para ello, necesitamos ejecutar el comando , así que hacemos una búsqueda en el archivo  -donde se encuentran declarados los archivos y sus profiles-&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@hseries:~$ &lt;b&gt;cat /etc/security/exec_attr | grep "pkg"&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:solaris:cmd:::/usr/bin/pkg:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/bin/pkginfo:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/bin/pkgmk:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/bin/pkgparam:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/bin/pkgproto:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/bin/pkgtrans:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/sbin/pkgadd:uid=0;gid=bin&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/sbin/pkgask:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/sbin/pkgchk:uid=0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Software Installation:suser:cmd:::/usr/sbin/pkgrm:uid=0;gid=bin&lt;/span&gt;&lt;/blockquote&gt;
Como podemos observar, el "Profile" es &lt;software installation=""&gt;, así que, simplemente deberemos asignarlo a nuestro "rol" o usuario.&lt;/software&gt;&lt;br /&gt;
&lt;br /&gt;
Si queremos asignarlo al "role" &lt;jmsserver&gt; haremos lo siguiente: &lt;/jmsserver&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@hseries:~$ &lt;b&gt;pfexec rolemod -P 'Software Installation' jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@hseries:~$ &lt;b&gt;pfexec profiles jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;jmsserver:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Software Installation&lt;/i&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;ZFS File System Management&lt;/i&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Basic Solaris User&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@hseries:~$ &lt;b&gt;pfexec su - jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OpenIndiana&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SunOS 5.11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oi_148&amp;nbsp; November 2010&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ &lt;b&gt;pkg rebuild-index&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 502/502 &lt;/span&gt;&lt;/blockquote&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
RBAC nos permite tener un control muy preciso sobre los accesos y privilegios de nuestros roles/usuarios. Además, debemos tener en cuenta que podemos definirnos nuestros propios "Profiles" para tener justo lo que queremos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comandos básicos y no tan básicos de Solaris &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;Modelo de Seguridad de Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-726516308592667348?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=kSlBpjX7eOg:BMiNImFGFzE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=kSlBpjX7eOg:BMiNImFGFzE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/kSlBpjX7eOg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/kSlBpjX7eOg/como-buscar-el-profile-necesario-para.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><feedburner:origLink>http://sparcki.blogspot.com/2011/08/como-buscar-el-profile-necesario-para.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-273021905734675825</guid><pubDate>Sun, 24 Jul 2011 21:54:00 +0000</pubDate><atom:updated>2011-07-24T23:54:30.835+02:00</atom:updated><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 4</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En las primeras partes de &lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;Qué es Crossbow y Cómo utilizarlo&lt;/a&gt; hablábamos de cada una de sus partes principales, hoy, haremos un pequeño acercamiento a los sistemas de auditoría.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas de Red&lt;/b&gt;&lt;br /&gt;
Ya hemos visto en &lt;a href="http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html"&gt;Qué es Crossbow y Cómo utilizarlo - Parte 3&lt;/a&gt; el comando &amp;lt;flowstat&amp;gt; que nos mostraba las estadísticas de uso de los flujos, pero siempre contando desde el último boot de nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
Pero, si queremos saber el consumo de un flujo en un determinado tiempo, por ejemplo, a primera hora de la mañana? La verdad es que entonces el comando &amp;lt;flowstat&amp;gt; -tal y como lo hemos visto- no nos sirve, pero tranquilos, que para ello tenemos soluciones.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Auditoría de Red&lt;/b&gt;&lt;br /&gt;
En Solaris/OpenIndiana tenemos un sistema de auditoría muy potente, en el que se incluyen el registro de red &amp;lt;net&amp;gt; y flujos &amp;lt;flow&amp;gt; entre otros.&lt;br /&gt;
Para ello, simplemente deberemos definir un archivo donde queremos que se almacenen los datos -en nuestro caso /var/log/ipqos/hseries/hseries.log- y el tipo de auditoría que queremos realizar.&lt;br /&gt;
&lt;br /&gt;
Todo ello se realizará mediante el comando &amp;lt;/usr/sbin/acctadm&amp;gt; que ahora veremos con más detalle.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tipos de Auditorías&lt;/b&gt;&lt;br /&gt;
Tenemos dos tipos de auditorías: básica y extendida. Para ver qué tipos de datos incluyen cada una de las auditorías utilizaremos la opción &amp;lt;-r&amp;gt; que nos mostrará todas las opciones de auditoría.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -r&lt;/b&gt;&lt;br /&gt;
process:&lt;br /&gt;
extended pid,uid,gid,cpu,time,command,tty,projid,taskid,ancpid,wait-status,zone,flag,memory,mstate&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; pid,uid,gid,cpu,time,command,tty,flag&lt;br /&gt;
task:&lt;br /&gt;
extended taskid,projid,cpu,time,host,mstate,anctaskid,zone&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; taskid,projid,cpu,time&lt;br /&gt;
flow:&lt;br /&gt;
extended saddr,daddr,sport,dport,proto,dsfield,nbytes,npkts,action,ctime,lseen,projid,uid&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr,daddr,sport,dport,proto,nbytes,npkts,action&lt;br /&gt;
&lt;b&gt;net:&lt;br /&gt;
extended name,ehost,edest,vlan_pid,vlan_tci,sap,priority,bwlimit,devname,src_ip,dst_ip,src_port,dst_port,protocol,dsfield,curtime,ibytes,obytes,ipkts,opkts,ierrpkts,oerrpkts&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; name,devname,ehost,edest,vlan_pid,vlan_tci,sap,priority,bwlimit,curtime,ibytes,obytes,ipkts,opkts,ierrpkts,oerrpkts&lt;/b&gt;&lt;/blockquote&gt;
En nuestro ejemplo de hoy, vamos a centrarnos en el módulo &amp;lt;net&amp;gt; que nos permitirá auditar los eventos de red. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Activar el sistema de auditoría&lt;/b&gt;&lt;br /&gt;
La activación del sistema de auditoría se realiza mediante el comando &lt;acctadm&gt; y la opción &amp;lt;-e {módulo}&amp;gt;, o utilizando el servicio &lt;svc: extended-accounting:net="" system=""&gt;.&lt;/svc:&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;br /&gt;
Antes de poder activarlo, debemos asignar un fichero donde realizaremos el registro -más adelante veremos otras opciones como utilizar &lt;raw filesystem=""&gt; para proteger el acceso al mismo-.&lt;/raw&gt;&lt;br /&gt;
&lt;br /&gt;
Como os he comentado, en nuestro ejemplo utilizaremos el archivo ; y el modo de auditoría &lt;extended&gt;&lt;/extended&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec mkdir -p /var/log/ipqos/hseries&lt;/b&gt;&lt;br /&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;/blockquote&gt;
&lt;b&gt;Comprobar el estado de la auditoría&lt;/b&gt;&lt;br /&gt;
Podemos comprobar el estado de un sistema de auditoría utilizando el comando &lt;acctadm {modulo}=""&gt;, en nuestro caso, queremos comprobar el estado del módulo &lt;net&gt;&lt;/net&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$&lt;b&gt; pfexec acctadm net&lt;br /&gt;
&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;active&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: &lt;i&gt;extended&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/blockquote&gt;
Vemos que nos indica que está &lt;active&gt; y que el modo de auditoría es &lt;extended&gt;&lt;/extended&gt;&lt;/active&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Desactivar el sistema de auditoría&lt;/b&gt;&lt;br /&gt;
Tenemos varias formas de desactivar la auditoría en función de cómo queramos actuar, por ejemplo, si queremos desactivar temporalmente la auditoría -por una necesidad puntual- o de forma permanente:&lt;br /&gt;
&lt;br /&gt;
Para desactivar temporalmente -sin cerrar el archivo de auditoría-, utilizaremos la opción &amp;lt;-D {modulo}&amp;gt; del comando &lt;acctadm&gt;, por ejemplo, si queremos desactivar la auditoría del módulo &lt;net&gt;:&lt;/net&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -D net&lt;/b&gt;&lt;br /&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;inactive&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
Para desactivar definitivamente la auditoría, utilizaremos la opción &amp;lt;-x {modulo}&amp;gt;, por ejemplo, al igual que antes el módulo de &lt;net&gt;&lt;br /&gt;&lt;/net&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -x net&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: inactive&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: &lt;b&gt;none&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/span&gt;&lt;/blockquote&gt;
Debemos fijarnos en el valor de &lt;net accounting="" file=""&gt; que ahora nos indica &lt;none&gt;, es decir, está totalmente desactivada&lt;/none&gt;&lt;/net&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Volver a activar las estadísticas&lt;/b&gt;&lt;br /&gt;
En ambos casos, deberemos utilizar la opción &amp;lt;-e -f {archivo}&amp;gt; para activar el sistema, por ejemplo, vemos cómo activarlo utilizando los dos métodos.&lt;br /&gt;
&lt;br /&gt;
Si cerramos el sistema de auditoría&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -x net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$&lt;b&gt; pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;inactive&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: &lt;i&gt;none&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;active&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
Y ahora si tenemos desactivada la auditoría temporalmente &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -D net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: inactive&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting: active&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas Avanzadas de Red&lt;/b&gt;&lt;br /&gt;
Ahora que ya sabemos activar el sistema de auditoría para la red en Solaris/OpenIndiana, podemos utilizar las funciones avanzadas del comando &lt;flowstat&gt;&lt;/flowstat&gt;&lt;br /&gt;
&lt;br /&gt;
Para ello, utilizaremos las opciones &amp;lt;-h -f {archivo-de-auditoria}&amp;gt;, por ejemplo, siguiendo con nuestro ejemplo:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
Esto nos daría un resumen de los datos, por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DURATION&amp;nbsp; IPACKETS RBYTES OPACKETS OBYTES BANDWIDTH&lt;br /&gt;
dns-flow&amp;nbsp;&amp;nbsp; 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6330&amp;nbsp;&amp;nbsp; 42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3834&amp;nbsp; 0 Mbps&lt;br /&gt;
http-flow&amp;nbsp; 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5662&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 535659 7389&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 94452 0.04 Mbps&lt;br /&gt;
https-flow 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1391&amp;nbsp;&amp;nbsp; 24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 946&amp;nbsp;&amp;nbsp; 0 Mbps&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas Utilizando un Rango de Fechas&lt;/b&gt;&lt;br /&gt;
Si queremos ver los datos capturados utilizando un rango de fechas, deberemos utilizar las opciones &amp;lt;-s {fecha,hora inicial} -e {fecha,hora final}&amp;gt;, por ejemplo, si queremos saber el tráfico entre las 22:00h y las 22:02h para el flow &lt;http-flow&gt; haremos&lt;/http-flow&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log -s 07/24/2011,22:00:00 -e 07/24/2011,22:02:00 http-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RBYTES&amp;nbsp;&amp;nbsp; OBYTES&amp;nbsp;&amp;nbsp; BANDWIDTH&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 21:59:57&amp;nbsp; 22:00:17&amp;nbsp; 3105&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5141&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:17&amp;nbsp; 22:00:37&amp;nbsp; 3518&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5145&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:37&amp;nbsp; 22:00:57&amp;nbsp; 2913&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4646&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:57&amp;nbsp; 22:01:17&amp;nbsp; 3568&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5950&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:01:17&amp;nbsp; 22:01:37&amp;nbsp; 2676&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4592&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.002 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:01:37&amp;nbsp; 22:01:57&amp;nbsp; 2971&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://draft.blogger.com/goog_17987501"&gt;&amp;lt;&amp;lt; &lt;/a&gt;&lt;a href="http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html"&gt;Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html"&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Hemos visto cómo podemos utilizar el sistema de auditoría de Solaris/OpenIndiana para registrar los eventos de red.&lt;br /&gt;
&lt;br /&gt;
Además, esto nos da las bases necesarias para poder explorar los sistemas de auditoría que nos aporta Solaris/OpenIndiana así que ... ya lo veremos dentro de nuestra serie &lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;RBAC, Privilegios y Permisos en Solaris&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-273021905734675825?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=e69Oy64V2-Q:YDn9_sIi_Eo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=e69Oy64V2-Q:YDn9_sIi_Eo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/e69Oy64V2-Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/e69Oy64V2-Q/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><feedburner:origLink>http://sparcki.blogspot.com/2011/07/que-es-crossbow-y-como-utilizarlo-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3091337962986576066</guid><pubDate>Sun, 19 Jun 2011 09:39:00 +0000</pubDate><atom:updated>2011-06-19T11:39:07.765+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>El comando "at" de Solaris/OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
El comando &amp;lt;at&amp;gt; de Solaris nos permite planificar la ejecución de un comando en un intervalo de tiempo. A diferencia de &lt;a href="http://sparcki.blogspot.com/2009/09/como-editar-el-crontab-en-solaris.html"&gt;cómo gestionar el cron en Solaris&lt;/a&gt;, donde se pueden definir repeticiones &amp;lt;at&amp;gt; nos permite ejecutar un comando "luego".&lt;br /&gt;
&lt;br /&gt;
El formato de &amp;lt;at&amp;gt; es el siguiente:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/bin/at [-c | -k | -s] [-m] [-f file] [-p project] [-q queuename] timespec&lt;/blockquote&gt;donde&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;-c&lt;/b&gt; indica que queremos utilizar &amp;lt;C Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-k&lt;/b&gt; indica que queremos utilizar &amp;lt;Korn Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-s&lt;/b&gt; indica que queremos utilizar &amp;lt;Bash Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-f&lt;/b&gt; indica que queremos utilizar &amp;lt;file&amp;gt; como comando en vez de la entrada estandar&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-p&lt;/b&gt; indica que queremos utilizar &amp;lt;project&amp;gt; como proyecto para la ejecución&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-q&lt;/b&gt; indica el nombre de la &amp;lt;queue&amp;gt; que queremos utilizar&lt;/li&gt;
&lt;li&gt;&lt;b&gt;timespec&lt;/b&gt; indica cuándo queremos ejecutarlo&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Colas de Ejecución&lt;/b&gt;&lt;br /&gt;
&amp;lt;at&amp;gt; dispone de diferentes &amp;lt;queue&amp;gt; de ejecución que nos van a permitir gestionar nuestras peticiones. Estas &amp;lt;queue&amp;gt; pueden ser letras en minúsculas de la &amp;lt;a ... z&amp;gt; donde debemos tener en cuenta que la &amp;lt;queue&amp;gt;b&amp;gt; está reservada para &amp;lt;batch&amp;gt; y la &amp;lt;c&amp;gt; para &amp;lt;cron&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La cola de ejecución &amp;lt;batch&amp;gt;&lt;/b&gt;&lt;br /&gt;
Este tipo especial de &amp;lt;queue&amp;gt; nos permite ejecutar los comandos en modo "secuencial" cuando el equipo está &amp;lt;idle&amp;gt; y, por lo tanto, no nos interfiere en la carga del sistema.&lt;br /&gt;
&lt;br /&gt;
Su formato no requiere una definición de tiempo -ya que lo ejecutará cuando pueda-, por ejemplo&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:/# &lt;b&gt;echo "ls &amp;gt;/tmp/ls.batch"| at -q b &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;commands will be executed using /bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;job 1308472386.b at dom jun 19 10:33:06 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Variables definidas para definir la hora de ejecución &amp;lt;timespec&amp;gt;&lt;/b&gt;&lt;br /&gt;
Existen  algunas definiciones ya establecidas para &amp;lt;timespec&amp;lt;, por  ejemplo, &amp;lt;now&amp;gt;, &amp;lt;midnight&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
A estas definiciones podemos añadirles (utilizando +) un intervalo, por ejemplo, &amp;lt;minute, hour, day, week&amp;gt; con lo que tendremos una expresión como esta:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:/# &lt;b&gt;echo "ls" | at now + 1 minute&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver el estado de las &amp;lt;queue&amp;gt;&lt;/b&gt;&lt;br /&gt;
Para ver el estado de las colas de ejecución, comandos pendientes y la fecha/hora planificada, utilizaremos la opción &amp;lt;-l&amp;gt;, por ejemplo&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;user = root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1308473222.a&amp;nbsp;&amp;nbsp;&amp;nbsp; dom jun 19 10:47:02 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Borrar un comando de la &amp;lt;queue&amp;gt;&lt;/b&gt;&lt;br /&gt;
Podemos borrar un comando utilizando la opción &amp;lt;-r {id}&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:/# &lt;b&gt;echo "ls &amp;gt; /tmp/ls.at" | at now + 5 minutes&lt;/b&gt;&lt;br /&gt;
commands will be executed using /bin/bash&lt;br /&gt;
job 1308473822.a at dom jun 19 10:57:02 2011&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;br /&gt;
user = root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1308473822.a&amp;nbsp;&amp;nbsp;&amp;nbsp; dom jun 19 10:57:02 2011&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -r 1308473822.a&lt;/b&gt;&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Permitir o denegar la ejecución de comandos&lt;/b&gt;&lt;br /&gt;
Al igual que sucede con &amp;lt;cron&amp;gt;, podemos establecer qué usuarios pueden ejecutar comandos mediante &amp;lt;at o cron&amp;gt; editando el archivo &amp;lt;/etc/cron.d/at.allow&amp;gt; y denegar editando el archivo &amp;lt;/etc/cron.d/at.deny&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Además, debemos tener en cuenta que si el usuario/role no tiene establecida una contraseña, no podrá ejecutar comandos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Algun ejemplo más ...&lt;/b&gt;&lt;br /&gt;
Por ejemplo, si queremos que se lance el sistema de actualización de paquetes hoy por la noche, podemos utilizar el siguiente formato:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:/# &lt;b&gt;echo "pkg refresh --full" | at -q z midnight&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;commands will be executed using /bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;job 1306792800.z at mar may 31 00:00:00 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Este comando -a veces desconocido- nos puede solucionar algún que otro problema, sobre todo cuando queremos dejar "algo para luego", o si queremos aprovecharnos de la ejecución en formato "batch".&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/como-editar-el-crontab-en-solaris.html"&gt;Cómo editar el crontab en Solaris/OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/06/como-funciona-el-sistema-de-instalacion.html"&gt;Cómo funciona el sistema de paquetes IPS en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3091337962986576066?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=cbY2WaZkRMA:Y41EszD_8ew:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=cbY2WaZkRMA:Y41EszD_8ew:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/cbY2WaZkRMA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/cbY2WaZkRMA/el-comando-at-de-solarisopenindiana.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/06/el-comando-at-de-solarisopenindiana.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3235691528919423245</guid><pubDate>Sun, 05 Jun 2011 18:42:00 +0000</pubDate><atom:updated>2011-06-05T20:42:00.289+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo funciona el sistema de instalación por paquetes IPS en OpenIndiana y Solaris - Parte 1</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Entre las muchas novedades que introdujo OpenSolaris, se encuentran el nuevo formato de instalación de paquetes (IPS).&lt;br /&gt;
&lt;br /&gt;
Esta nueva forma de instalación elimina los problemas de dependencias que podíamos tener en el formato anterior (SrV4) aunque, también nos incluye algunas limitaciones que veremos cómo podemos evitarlas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sistema IPS&lt;/b&gt;&lt;br /&gt;
El formato de paquetes IPS es muy parecido al sistema utilizado por FreeBSD, es decir, nos permite instalar, actualizar y desinstalar de una forma sencilla un paquete y sus dependencias, todo ello utilizando un único comando &amp;lt;pkg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Funcionamiento básico&lt;/b&gt;&lt;br /&gt;
Su funcionamiento consiste en incluir repositorios donde podemos encontrar los paquetes -en formato binario-, por lo tanto, disponemos de diversas fuentes desde la cuales instalar.&lt;br /&gt;
&lt;br /&gt;
Estos repositorios se pueden encontrar en una dirección web pública, por ejemplo, &lt;a href="http://pkg.x86.havoctec.com/"&gt;http://pkg.x86.havoctec.com/&lt;/a&gt; o en un servidor interno, http://localhost:1000/.&lt;br /&gt;
&lt;br /&gt;
Cuando al principio os comentaba sobre "algunas limitaciones" esta era una de ellas, el hecho de necesitar de un acceso a Internet, pero como veis, es muy sencillo de solucionar creando un repositorio "interno" desde el cual instalar los paquetes -lo veremos más adelante-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Repositorios&lt;/b&gt;&lt;br /&gt;
Un repositorio es un servicio web que nos proporciona el funcionamiento de control y acceso. En OpenIndiana/Solaris debemos activar y configurar el servidor &amp;lt;svc:/application/pkg/server:default&amp;gt; para poder gestionarlo.&lt;br /&gt;
&lt;br /&gt;
Cada repositorio está "asociado" un "publisher", es decir, quién lo publica. De esta forma, si instalamos el paquete &amp;lt;nagios-core&amp;gt; desde el repositorio &amp;lt;&lt;a href="http://pkg.x86.havoctec.com/"&gt;http://pkg.x86.havoctec.com/&lt;/a&gt;&amp;gt;, nuestro sistema IPS, buscará las actualizaciones siempre en este repositorio.&lt;br /&gt;
&lt;br /&gt;
Para evitar esto, es decir que los paquetes se puedan actualizar desde cualquier repositorio hay que utilizar la opción &amp;lt;--non-sticky&amp;gt; pero luego hablamos con más detalle de todo esto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gestionar los Repositorios de Paquetes y Publisher&lt;/b&gt;&lt;br /&gt;
Como hemos comentado, todo el sistema de administración se realiza utilizando el comando &amp;lt;pkg&amp;gt;, para ello, debemos utilizar las opciones &amp;lt;publisher y unset-publisher&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ver los Publicadores -publisher-&lt;/b&gt;&lt;br /&gt;
Debemos utilizar la opción &amp;lt;publisher&amp;gt; para obtener el detalle de los repositorios instalados, y su estado, por ejemplo&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg publisher&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PUBLISHER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS&amp;nbsp;&amp;nbsp; URI&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;openindiana.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (preferred)&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/dev/&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;opensolaris.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/legacy/&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Añadir un nuevo publisher&lt;/b&gt;&lt;br /&gt;
Para añadir un publisher, simplemente deberemos utilizar la opción &amp;lt;publisher&amp;gt; del comando &amp;lt;pkg&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para añdir el publicador HavocTec.Com utilizaremos el siguiente comando, donde la opción &amp;lt;-O&amp;lt; representa la URL del repositorio, y havoctec.com es el nombre del publisher.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$&amp;nbsp; &lt;b&gt;pfexec pkg set-publisher -O http://pkg.x86.havoctec.com/ havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;Y nos quedará de la siguiente forma, donde vemos ahora nuestro nuevo publisher "HavocTec.Com"&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg publisher&lt;/b&gt;&lt;br /&gt;
PUBLISHER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS&amp;nbsp;&amp;nbsp; URI&lt;br /&gt;
openindiana.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (preferred)&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/dev/&lt;br /&gt;
opensolaris.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/legacy/&lt;br /&gt;
&lt;b&gt;havoctec.com&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.x86.havoctec.com/&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Modificar la URL del repositorio&lt;/b&gt;&lt;br /&gt;
Alguna vez puede que necesitemos modificar la URL en la que se encuentra el repositorio del publisher, para ello, deberemos utilizar la opción &amp;lt;set-publisher&amp;lt; con las opciones &amp;lt;-G direccion_a_eliminar&amp;gt; y &amp;lt;-g direccion_nueva&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para modificar la dirección del repositorio &amp;lt;http://pkg.x86.havoctec.com/&amp;gt; por &amp;lt;http://pkg.havoctec.com/&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg set-publisher -G http://pkg.x86.havoctec.com/ -g http://pkg.havoctec.com/ havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un Publisher&lt;/b&gt;&lt;br /&gt;
Para eliminar un publisher, simplemente deberemos utilizar la opción &amp;lt;unset-publisher&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para eliminar el&amp;nbsp; publisher &amp;lt;havoctec.com&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg unset-publisher havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Instalar nuevos paquetes&lt;/b&gt;&lt;br /&gt;
Ya hemos utilizado muchas veces el comando, pero hasta ahora no habíamos entrado en detalle de su funcionamiento, :D. Para instalar un paquete nuevo, siemplemente deberemos ejecutar el comando &amp;lt;pkg install {frmi}&amp;gt;, por ejemplo para instalar el core de nagios, haremos lo siguiente&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg install nagios-core&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to update:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create boot environment:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;br /&gt;
DOWNLOAD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PKGS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILES&amp;nbsp;&amp;nbsp;&amp;nbsp; XFER (MB)&lt;br /&gt;
Completed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0/0.0&lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACTIONS&lt;br /&gt;
Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3/3 &lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;br /&gt;
Package State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;br /&gt;
Package Cache Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;br /&gt;
Image State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;br /&gt;
Reading Existing Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8/8 &lt;br /&gt;
Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1 &lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:~$&lt;b&gt; pfexec svcs nagios&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:15:17 svc:/application/network/nagios:server&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Limitaciones de IPS&lt;/b&gt;&lt;br /&gt;
Una de las limitaciones que tenemos en el nuevo sistema de paquetes es que no podemos ejecutar scripts -como antes teníamos post-install, pre-install, etc.- por lo tanto, algunas de las características más "avanzadas" de OpenIndiana/Solaris no se pueden llevar a cabo, por ejemplo crear nuevas autorizaciones, desde el propio sistema de instalación.&lt;br /&gt;
&lt;br /&gt;
Pero, como siempre, tenemos una solución, bueno en este caso hay muchas y diversas, aunque yo he utilizado una sencilla: Crear un script &amp;lt;post-install&amp;gt; en el paquete y llamarlo luego "a mano", por ejemplo:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:/$ &lt;b&gt;pfexec sh /usr/local/nagios/scripts/post-install &lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;Si estáis interesados en "el por qué" aquí os dejo algunos links a las explicaciones: &lt;a href="http://blogs.oracle.com/sch/entry/pkg_1_a_no_scripting"&gt;pkg no script zone&lt;/a&gt; y &lt;a href="http://constantin.glez.de/blog/2010/08/how-add-pre-post-scripts-ips-packages"&gt;pkg postinstall using smf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Eliminar un paquete&lt;/b&gt;&lt;br /&gt;
Para eliminar un paquete, simplemente utilizaremos la opción &amp;lt;uninstall&amp;gt; seguido del nombre del paquete, por ejemplo, si queremos eliminar &amp;lt;nagios-core&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@tikko:/$ &lt;b&gt;pfexec pkg uninstall nagios-core&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to remove:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create boot environment:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Services to restart:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACTIONS&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/72&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 72/72&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Package State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1 &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Package Cache Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Image State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Reading Existing Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8/8 &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta primera parte hemos vista algunas funciones básicas de IPS, en las siguientes veremos cómo crear un servidor IPS para tener réplicas locales y, de esta forma, no tener que depender de la conexión de Internet para las instalaciones.&lt;br /&gt;
&lt;br /&gt;
Además, os dejo el link del repositorio público que he creado -gracias a HavocTec por cederme recursos- para que todas las instalaciones que os voy enseñando, se puedan instalar con &amp;lt;pfexec pkg instal {frmi}&amp;gt; y simplificar el proceso.&lt;br /&gt;
&lt;br /&gt;
Aunque actualmente no hay muchos paquetes, poco a poco ire subiendo los principales: PostgreSQL, Apache HTTP, Nagios, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href="http://pkg.x86.havoctec.com/en/catalog.shtml"&gt;Repositorio HavocTec.Com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hub.opensolaris.org/bin/view/Project+pkg/WebHome"&gt;Documentación IPS en OpenSolaris&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3235691528919423245?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=JMtxy7A4Iew:ctxw2smkXN0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=JMtxy7A4Iew:ctxw2smkXN0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/JMtxy7A4Iew" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/JMtxy7A4Iew/como-funciona-el-sistema-de-instalacion.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/06/como-funciona-el-sistema-de-instalacion.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-4780444819747597659</guid><pubDate>Thu, 26 May 2011 18:35:00 +0000</pubDate><atom:updated>2011-05-26T20:35:44.397+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 3</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En las primeras parte de Crossbow Qué y Cómo Utilizarlo hacíamos una introducción a la tecnología. En esta ocasión vamos a ver una nueva utilidad &amp;lt;flowadm&amp;gt; que nos permitirá aplicar QoS de una forma muy sencilla.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Flow o Flujos&lt;/b&gt;&lt;br /&gt;
Los &amp;lt;flow&amp;gt; nos permiten discriminar el tráfico en función de unos parámetros, como por ejemplo puerto origen &amp;lt;local_port&amp;gt;, puerto destino &amp;lt;remote_port&amp;gt;, tipo de protocolo &amp;lt;protocol&amp;gt;, etc. y asignarle una prioridad y un ancho de banda.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cómo utilizar flujos&lt;/b&gt;&lt;br /&gt;
Supongamos que tenemos un servidor con varias zonas, donde a su vez tenemos instalados diferentes servicios -por ejemplo &lt;a href="http://sparcki.blogspot.com/2009/12/instalar-apache-mod-gzip-solaris-10.html"&gt;Apache HTTP&lt;/a&gt; y &lt;a href="http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html"&gt;PostgreSQL&lt;/a&gt;- y, queremos asignar unos "anchos de banda y prioridades" para garantizar los servicios.&lt;br /&gt;
&lt;br /&gt;
Así crearemos dos flujos -uno para HTTP y otro para PostgreSQL- donde asignemos unos límites y prioridades sabiendo que ninguno de ellos "usará el ancho de banda del otro" y, de esta forma garantizando nuestros servicios.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gestión de Flujos&lt;/b&gt;&lt;br /&gt;
Aunque pueda parecer que es lo mismo que veíamos en la &lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;Crossbow y Cómo utilizarlo en OpenIndiana - Parte 1&lt;/a&gt;, tiene algunas pequeñas diferencias.&lt;br /&gt;
&lt;br /&gt;
En sí, se obtiene un mismo objetivo: "Asignar un ancho de banda máximo" sin embargo, si utilizamos la opción de asignarlo al interface todos los servicios estarán limitados -y no podemos establecer un ajuste más fino-, pero si utilizamos &amp;lt;flowadm&amp;gt;, seremos capaces de diferenciar por servicios y, de esta forma, hacer un ajuste muy fino.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; El comando &amp;lt;flowadm&amp;gt;&lt;/b&gt;&lt;br /&gt;
Toda la gestión se realiza utilizando el comand &amp;lt;/usr/sbin/flowadm&amp;gt; -al igual que sucedía con &amp;lt;dladm&amp;gt;- y sus opciones son las siguientes:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm&lt;/b&gt;&lt;br /&gt;
usage: flowadm &amp;lt;subcommand&amp;gt; &amp;lt;args&amp;gt;...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; add-flow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; -a &amp;lt;attr&amp;gt;=&amp;lt;value&amp;gt;[,...]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] {-l &amp;lt;link&amp;gt; | &amp;lt;flow&amp;gt;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; show-flow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-l &amp;lt;link&amp;gt;] [&amp;lt;flow&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; set-flowprop&amp;nbsp;&amp;nbsp; [-t] -p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; reset-flowprop [-t] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; show-flowprop&amp;nbsp; [-cP] [-l &amp;lt;link&amp;gt;] [-p &amp;lt;prop&amp;gt;,...] [&amp;lt;flow&amp;gt;]&lt;/blockquote&gt;&lt;br /&gt;
Nota: Recordar que se debe ejecutar como &amp;lt;root&amp;gt; o con un usuario con los privilegios suficientes. Si no sabes mucho de Privilegios y Roles te aconsejo que mires &lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;RBAC: Roles y Privilegios en Solaris/OpenIndiana&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Creación de un &amp;lt;flow&amp;gt;&lt;/b&gt;&lt;br /&gt;
Para crear un flow, simplemente deberemos utilizar la opción &amp;lt;add-flow&amp;gt; y definir sobre que interface queremos que se aplique. Recordar que ahora podemos utilizar tanto interface virtuales como físicos.&lt;br /&gt;
&lt;br /&gt;
Así que vamos a crear un &amp;lt;flow&amp;gt; que nos asigne siempre una prioridad muy alta a los accesos que realicemos a nuestra PostgreSQL sobre nuestro interface es un virtual &amp;lt;vnic1&amp;amp;gt.&lt;br /&gt;
&lt;br /&gt;
Podemos crear un &amp;lt;flow&amp;gt; utilizando las siguientes opciones como "filtros":&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Puerto&lt;/b&gt;: Local &amp;lt;local_port&amp;gt; o remoto &amp;lt;remote_port&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tipo Conexión&lt;/b&gt;: &amp;lt;transport&amp;gt;, tcp, udp, sctp, icmp, icmp6&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IP&lt;/b&gt;: Origen &amp;lt;local_ip&amp;gt; o destino &amp;lt;remote_ip&amp;gt;&lt;/li&gt;
&lt;/ul&gt;Utilizaremos las opciones &amp;lt;transport=TCP&amp;gt; para indicar que será de tipo TCP y que el puerto local &amp;lt;local_port&amp;gt;. &lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm add-flow -l vnic1 -a transport=TCP,local_port=5432 postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Ver y Cambiar las propiedades&lt;/b&gt;&lt;br /&gt;
Como sucedía con los interfaces virtuales, podemos cambiarle las propiedades al flujo "en caliente", para ello, utilizaremos las opciones &amp;lt;show-flowprop&amp;gt; para mostrar las propiedades y &amp;lt;set-flowprop -p {PROPIEDAD=VALOR}&amp;lt; para asignar una nueva.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;br /&gt;
postgres-flow priority&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/blockquote&gt;Cuando no tenemos asignado un valor a la propiedad se muestran como "--" para indicarnos que no hay nada.&lt;br /&gt;
&lt;br /&gt;
Y para cambiar una propiedad, por ejemplo asignarle la máxima prioridad haremos lo siguiente:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm set-flowprop -p priority=high postgres-flow&lt;/b&gt;&lt;/blockquote&gt;Comprobamos sus propiedades, utilizando la opción &amp;lt;show-flowprop&amp;gt; &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;br /&gt;
postgres-flow priority&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high &lt;/blockquote&gt;&lt;b&gt;Asignar un Ancho de Banda (maxbw)&lt;/b&gt;&lt;br /&gt;
Para limitar el ancho de banda máximo para el &amp;lt;flow&amp;gt;, deberemos utilizar la propiedad &amp;lt;maxbw&amp;gt;. El valor a asignar será un valor entero y deberemos añadir la escala (K, M o G para Kilobits, Megabits o Gigabits), si no añadimos ninguna, Solaris entenderá que estamos introduciendo Megabits.&lt;br /&gt;
&lt;br /&gt;
Un pequeño apunte sobre la limitación de ancho de banda a tener en cuenta es, si hemos limitado nuestro interface a un determinado valor, nuestro &amp;lt;flow&amp;gt; nunca superará éste aunque se mayor, es decir, si hemos puesto que nuestro interface tiene un valor de &amp;lt;maxbw=10M&amp;gt; y tenemos un flow con &amp;lt;maxbw=20M&amp;gt;, nuestro &amp;lt;flow&amp;gt; nunca nos dará un valor superior a 10M -porque lo limita el interface-&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm set-flowprop -p maxbw=2M postgres-flow&lt;/b&gt;&lt;br /&gt;
havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow&amp;nbsp; maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2M &lt;br /&gt;
postgres-flow&amp;nbsp; priority&amp;nbsp;&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Resetear todas las propiedades&lt;/b&gt;&lt;br /&gt;
Cuando se está "jugando" con las propiedades, hay veces que queremos empezar "de cero" para poder asignar otros parámetros, para ello, utilizaremos la opción &amp;lt;reset-flowprop&amp;amp;ght;, por ejemplo:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm reset-flowprop postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres-flow priority&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un flujo&lt;/b&gt;&lt;br /&gt;
Para eliminar un &amp;lt;flow&amp;gt; simplemente utilizaremos la opción &amp;lt;remove-flow&amp;gt; del comando &amp;lt;flowadm&amp;gt;, siguiendo con nuestro ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm remove-flow postgres-flow&lt;/b&gt; &lt;/blockquote&gt;&lt;b&gt;Ver las Estadísticas&lt;/b&gt;&lt;br /&gt;
Podemos ver las estadísticas de un &amp;lt;flow&amp;gt; utilizando el comando &amp;lt;flowstats&amp;gt; que nos proporcionará los valores totales de los flujos, por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;havoc@h100:~$ &lt;b&gt;pfexec flowstat&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLOW IPKTS&amp;nbsp; RBYTES&amp;nbsp; IERRS OPKTS&amp;nbsp;&amp;nbsp; OBYTES&amp;nbsp;&amp;nbsp;&amp;nbsp; OERRS&lt;br /&gt;
&amp;nbsp; postgres-flow 14,14K 987,97K 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15,68K&amp;nbsp; 17,09M&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pkg-flow 47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,13K&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,54K&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/blockquote&gt;Si queremos ver las estadísticas de un período concreto, debemos activar los sistemas de auditoría que ... esto lo dejaremos para la Parte 4 ya que así lo podremos unir a Auditoría sobre RBAC en Solaris&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://draft.blogger.com/goog_17987501"&gt;&amp;lt;&amp;lt; &lt;/a&gt;&lt;a href="http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html"&gt;Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
Poco a poco avanzamos en el uso de Crossbow, y, en esta ocasión nos hemos centrado en una parte importante de Calidad de Servicio (QoS) que, sinceramente se ha simplificado en gran medida.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-4780444819747597659?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=sFDZ4ocCkKA:jrazA0MlDD0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=sFDZ4ocCkKA:jrazA0MlDD0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/sFDZ4ocCkKA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/sFDZ4ocCkKA/que-es-crossbow-y-como-utilizarlo-en_26.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-9098787446521016174</guid><pubDate>Sun, 22 May 2011 19:20:00 +0000</pubDate><atom:updated>2011-05-22T21:20:00.674+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">havoctec</category><category domain="http://www.blogger.com/atom/ns#">off topic</category><title>Resumen de mi Trabajo en HavocTec</title><description>Hoy no voy a hablar sobre Solaris, OpenIndiana o PostgreSQL .... no, no, no, hoy voy a hacer un "resumen en voz alta" de mis experiencias en &lt;a href="http://www.havoctec.com/"&gt;HavocTec&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Lo cierto es que, aunque no tengo todo el tiempo que me gustaría para dedicarme al blog -creo que ninguno lo tenemos-, muchos de los posts están inspirados en algo que he hecho -o he tenido que diseñar- tanto en HavocTec como en los productos que disponemos (&lt;a href="http://www.havoctec.com/services.html"&gt;HSeries&lt;/a&gt;, &lt;a href="http://www.sfchildren.com/"&gt;SafeChildren&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Han pasado muchas cosas desde que decidí incorporarme a &lt;a href="http://www.havoctec.com/index.html"&gt;HavocTec&lt;/a&gt;, y, ciertamente no me arrepiento de haberlo hecho, ya que, creo que contribuir a la creación de un Sistema de Gestión de Internet me ha servido para aprender mucho, y, poner ese "granito de arena" contra lo &lt;a href="http://www.protegeles.org/"&gt;Pornografía Infantil, Acoso, CyberBulling&lt;/a&gt; y otras lacras que nos empiezan a sonar bastante más de lo que me gustaría.&lt;br /&gt;
&lt;br /&gt;
Me ha permitido llevar temas de seguridad a niveles "más humanos" -por ejemplo &lt;a href="http://www.havoctec.com/news.html"&gt;Charlas con Padres preocupados por sus niños&lt;/a&gt;- y, eso, hace ver que la tecnología tiene un lado humano muy gratificante.&lt;br /&gt;
&lt;br /&gt;
Por eso, quería felicitar a todo el equipo de HavocTec y espero seguir disfrutando como hasta ahora con ellos.&lt;br /&gt;
&lt;br /&gt;
Urko Benito,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-9098787446521016174?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=gVHpdSOrimU:7fsoA7tL4lA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=gVHpdSOrimU:7fsoA7tL4lA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/gVHpdSOrimU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/gVHpdSOrimU/resumen-de-mi-trabajo-en-havoctec.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/05/resumen-de-mi-trabajo-en-havoctec.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-9222200932857324645</guid><pubDate>Mon, 09 May 2011 21:56:00 +0000</pubDate><atom:updated>2011-05-09T23:56:15.504+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En la primera parte hablábamos de &lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;Qué es Crossbow y Cómo Utilizarlo&lt;/a&gt; en nuestros equipos de producción.&lt;br /&gt;
&lt;br /&gt;
En esta ocasión, vamos a seguir profundizando en las opciones que nos aporta la creación de nic virtuales (vnic)&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Optimización en Servidores CMT (&lt;a href="http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html"&gt;MultiThread&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;
Una de las opciones más interesantes cuando hablamos de servidores Web, es la posibilidad de "unir" nuestras vnic a cores -o threads- de nuestro equipo.&lt;br /&gt;
&lt;br /&gt;
De esta forma, podemos hacer que si tenemos una zona de en la cual tengamos instalado nuestro servidor Web Apache (o varios servidores), la interrupciones que se producen en la tarjeta de red, no afecten a los demás.&lt;br /&gt;
&lt;br /&gt;
Dicho de otra forma, si tenemos una zona donde está nuestro servidor de aplicaciones, pongamos &lt;a href="http://sparcki.blogspot.com/2010/11/como-configurar-https-en-tomcat.html"&gt;Apache Tomcat&lt;/a&gt; y sobre otra zona nuestro &lt;a href="http://sparcki.blogspot.com/2010/04/instalacion-de-squid-como-proxy-reverso.html"&gt;Squid como Proxy Reverso&lt;/a&gt;, y nuestra máquina tiene 4 cpus. Así que vamos a asignar las CPUs 0,1,2 al Proxy Reverso y la 3 a nuestro servidor Tomcat.&lt;br /&gt;
&lt;br /&gt;
Para ello, vamos a utilizar la propiedad &amp;lt;cpus&amp;gt; y &amp;lt;priority&amp;gt;, para crear dos VirtualNIC -como vimos en la primera parte-&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@h1-cl1:/# &lt;b&gt;psrinfo &lt;/b&gt;&lt;br /&gt;
0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:24&lt;br /&gt;
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm create-vnic -l e1000g0 vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm create-vnic -l e1000g0 vnic11&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm show-vnic&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp; VID&lt;br /&gt;
vnic10&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; 2:8:20:20:17:9f&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
vnic11&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; 2:8:20:70:e5:b1&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p cpus=0,1,2 vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p cpus=3 vnic11&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p priority=high vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p priority=medium vnic11&lt;/b&gt;&lt;/blockquote&gt;De esta forma hemos hecho que las tarjetas "no se pisen" cuando tenga un tráfico muy elevado, y, si tenemos CPUs CMT -como los UltraSPARC T- podemos aprovechar al máximo el número de Threads que nos aportan.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://draft.blogger.com/goog_1617897094"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html"&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta ocasión no hemos hablado -a simple vista- de mucho, sin embargo, cuando empecéis a hacer vuestras pruebas, veréis cómo se obtienen unos resultados sorprendentes.&lt;br /&gt;
&lt;br /&gt;
De todas formas, queda mucho por descubrir en Crossbow, y, en las siguientes entregas veremos algo más sobre optimización de anchos de banda (QoS)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-9222200932857324645?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=OOtkdVKmOJ8:MCLbefbVYhA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=OOtkdVKmOJ8:MCLbefbVYhA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/OOtkdVKmOJ8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/OOtkdVKmOJ8/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3694372068358798499</guid><pubDate>Fri, 29 Apr 2011 07:25:00 +0000</pubDate><atom:updated>2011-04-29T09:25:27.170+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><title>Problemas RTL8168B PCI-e en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hace unos días decidí cambiar algunos de mis equipos de pruebas de mi casa, y me "lancé" a comprarme componentes sueltos en App Informática -era en previsión de las días de fiesta ... :D-&lt;br /&gt;
&lt;br /&gt;
Así que me compré diferentes componentes, aunque hoy vamos a hablar sólo de la tarjeta de red &lt;a href="http://www.appinformatica.com/tarjetas-red-edimax-en-9260tx-e-t.red-gigabit-pci-express.php"&gt;PCI-e EDIMAX&lt;/a&gt; y su Chipset RTL8168B.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El problema&lt;/b&gt;&lt;br /&gt;
Después de instalar OpenIndiana sin ningún problema, configurar y demás historias -todo ello utilizando la tarjeta de red integrada en la placa- me dispuse a activar la tarjeta PCI-e y configurar OpenIndiana como Router -para poner &lt;a href="http://sparcki.blogspot.com/2009/09/instalar-squid-como-proxy-transparente.html"&gt;SQUID como Proxy Transparente&lt;/a&gt;-, pero ... cuál fue mi sorpresa que después de unas horas "OpenIndiana se colgaba 100%".&lt;br /&gt;
&lt;br /&gt;
No respondía nada! Ni por consola!!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La Solución&lt;/b&gt;&lt;br /&gt;
Siento decir que me hubiese gustado poner aquí "la solución mágica", pero ... no fui capaz! Toqué cientos de parámetros, cambie de driver -utilizando gani- y muchas horas de pruebas, siempre con el mismo resultado: "colgada 100% de OpenIndiana"&lt;br /&gt;
&lt;br /&gt;
Así que, al final, he cambiado esta tarjeta por una Intel PCI-e ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3694372068358798499?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=iVADdFLyAeM:qisS2mxCQuY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=iVADdFLyAeM:qisS2mxCQuY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/iVADdFLyAeM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/iVADdFLyAeM/problemas-rtl8168b-pci-e-en-openindiana.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>4</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/04/problemas-rtl8168b-pci-e-en-openindiana.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-957017670709204819</guid><pubDate>Sun, 17 Apr 2011 21:29:00 +0000</pubDate><atom:updated>2011-04-17T23:32:44.403+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">grub</category><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">console</category><title>Activar Salida por Consola Serie en OpenIndiana/Solaris 11</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Si queremos hacer que nuestro OpenIndiana/Solaris utilice nuestro puerto serie como salida en vez de la tarjeta gráfica, por ejemplo en servidores, simplemente deberemos incluir la opción "console=ttya" en nuestra entrada "kernel" del archivo &amp;lt;menu.lst&amp;gt; de GRUB.&lt;br /&gt;
&lt;br /&gt;
Debemos recordar que si tenemos ZFS como sistema de archivos, el archivo &amp;lt;menu.lst&amp;gt; se encontrará en &amp;lt;POOL/boot/grub&amp;gt;, por ejemplo, en mi caso el nombre del POOL es "rpool".&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@h100:/rpool/boot/grub# &lt;b&gt;zpool status&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; pool: &lt;b&gt;rpool&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;state: ONLINE&lt;br /&gt;
&amp;nbsp;scan: resilvered 4,10G in 0h1m with 0 errors on Sat Apr 16 13:30:56 2011&lt;br /&gt;
config:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ WRITE CKSUM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mirror-0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2d0s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3d1s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&lt;br /&gt;
errors: No known data errors&lt;/blockquote&gt;Editaremos el archivo "menu.lst", e incluiremos la opción "console=ttya" teniendo en cuenta que debemos incluir un "," para separar la opción.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@h100:/#&lt;b&gt; vi /rpool/boot/grub/menu.lst&lt;/b&gt; &lt;br /&gt;
&amp;nbsp;title ASEngine Enterprise Platform&lt;br /&gt;
&amp;nbsp;findroot (pool_rpool,0,a)&lt;br /&gt;
&amp;nbsp;bootfs rpool/ROOT/solaris-1&lt;br /&gt;
&amp;nbsp;kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS&lt;b&gt;,console=ttya&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;module$ /platform/i86pc/$ISADIR/boot_archive&lt;br /&gt;
&lt;i&gt;:wq&lt;/i&gt;&lt;/blockquote&gt;Ahora, la próxima vez que iniciemos nuestro OpenIndiana, la salida se producirá por nuestro puerto de serie 1 -ttya- y, por lo tanto, podremos acceder con nuestro programa favorito, por ejemplo &amp;lt;minicom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
No ha sido difícil activar nuestra salida de consola por puerto serie, y ya podemos gestionar de forma remota -y rápida- nuestro OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/10/como-cambiar-el-timeout-de-arranque-en.html"&gt;Cómo cambiar el TimeOut de GRUB en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-957017670709204819?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=LxE4R19XPso:gvMmTyCGjtk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=LxE4R19XPso:gvMmTyCGjtk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/LxE4R19XPso" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/LxE4R19XPso/activar-salida-por-consola-serie-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/04/activar-salida-por-consola-serie-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-6917505518955018497</guid><pubDate>Mon, 11 Apr 2011 11:22:00 +0000</pubDate><atom:updated>2011-04-11T22:01:14.780+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Una de las tecnologías que OpenSolaris nos dejó fue la "Virtualización de la Infraestructura de Red". Actualmente tanto OpenIndiana como Solaris 11 incorporan esta tecnología, que, aunque un poco desconocida, realmente muy potente.&lt;br /&gt;
&lt;br /&gt;
En esta serie de artículos vamos a ver cómo podemos utilizar esta tecnología en nuestras máquinas de producción.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;¿Virtualizar Infraestructura de Red?&lt;/b&gt;&lt;br /&gt;
Si, es correcto. Crossbow nos permite virtualizar nuestra infraestructura -switches, routers, tarjetas- por lo tanto, nos permite diseñar una "infraestructura virtual" completa.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, vamos a ver un enfoque más "práctico" a la virtualización de la infraestructura de Red, y, sobre todo, cómo utilizarlo en nuestro equipos de producción.&lt;br /&gt;
&lt;br /&gt;
El uso de &lt;a href="http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html"&gt;Solaris Zones&lt;/a&gt; es una ventaja importante, pero, si queremos "mover" nuestras máquinas virtuales de un host a otro, tenemos algunos problemas -por ejemplo el nombre de la tarjeta de red-. Utilizando una tarjeta virtual, eliminaremos este problema, y, además podremos &lt;a href="http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html"&gt;añadir soporte IPFilter a nuestra zona&lt;/a&gt; ya que podemos poner &amp;lt;&lt;a href="http://sparcki.blogspot.com/2010/05/instalar-ipfilter-en-opensolaris.html"&gt;ip-type=exclusive&lt;/a&gt;&amp;gt; en vez de &amp;lt;shared&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, crossbow incluye una nueva forma de manejar QoS, y sí, esta vez, es sencilla y muy eficiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El comando &amp;lt;dladm&amp;gt;&lt;/b&gt;&lt;br /&gt;
La gestión de la virtualización de red se encuentra en el comando &amp;lt;/usr/sbin/dladm&amp;gt; que, nos proporciona los métodos para: crear, modificar y borrar elementos virtuales -vnic, etherstub, bridge, vlan-&lt;br /&gt;
&lt;br /&gt;
Si ejecutamos el comando -teniendo en cuenta que debemos disponer de permisos suficientes- sin argumentos, se nos muestra las diferentes opciones &lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;usage:&amp;nbsp; dladm &amp;lt;subcommand&amp;gt; &amp;lt;args&amp;gt; ...&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename-link&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;oldlink&amp;gt; &amp;lt;newlink&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-link&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-P &amp;lt;policy&amp;gt;] [-L &amp;lt;mode&amp;gt;] [-T &amp;lt;time&amp;gt;] [-u &amp;lt;address&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-P &amp;lt;policy&amp;gt;] [-L &amp;lt;mode&amp;gt;] [-T &amp;lt;time&amp;gt;] [-u &amp;lt;address&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pPLx] [-o &amp;lt;field&amp;gt;,..] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e &amp;lt;essid&amp;gt;] [-i &amp;lt;bssid&amp;gt;] [-k &amp;lt;key&amp;gt;,...] [-s wep|wpa]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-a open|shared] [-b bss|ibss] [-c] [-m a|b|g] [-T &amp;lt;time&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disconnect-wifi&amp;nbsp; [-a] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set-linkprop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reset-linkprop&amp;nbsp;&amp;nbsp; [-t] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-linkprop&amp;nbsp;&amp;nbsp;&amp;nbsp; [-cP] [-o &amp;lt;field&amp;gt;,...] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-ether&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-px][-o &amp;lt;field&amp;gt;,...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-f &amp;lt;file&amp;gt;] -c &amp;lt;class&amp;gt; &amp;lt;secobj&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;secobj&amp;gt;[,...]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;secobj&amp;gt;,...]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-ft] -l &amp;lt;link&amp;gt; -v &amp;lt;vid&amp;gt; [link]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -T &amp;lt;type&amp;gt; [-a {local|remote}=&amp;lt;addr&amp;gt;,...] &amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -a {local|remote}=&amp;lt;addr&amp;gt;,... &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [-H] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-m &amp;lt;value&amp;gt; | auto |&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {factory [-n &amp;lt;slot-id&amp;gt;]} | {random [-r &amp;lt;prefix&amp;gt;]} |&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {vrrp -V &amp;lt;vrid&amp;gt; -A {inet | inet6}} [-v &amp;lt;vid&amp;gt; [-f]]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...]] &amp;lt;vnic-link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;vnic-link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-l &amp;lt;link&amp;gt;] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-f] -l &amp;lt;link&amp;gt; [-P &amp;lt;pkey&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] &amp;lt;part-link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-R &amp;lt;root-dir&amp;gt;] &amp;lt;part-link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,...][-l &amp;lt;linkover&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;part-link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-ib&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-etherstub [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-etherstub [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-etherstub&amp;nbsp;&amp;nbsp; [-t] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] [-P &amp;lt;protect&amp;gt;] [-p &amp;lt;priority&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-m &amp;lt;max-age&amp;gt;] [-h &amp;lt;hello-time&amp;gt;] [-d &amp;lt;forward-delay&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-f &amp;lt;force-protocol&amp;gt;] [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] [-P &amp;lt;protect&amp;gt;] [-p &amp;lt;priority&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-m &amp;lt;max-age&amp;gt;] [-h &amp;lt;hello-time&amp;gt;] [-d &amp;lt;forward-delay&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-f &amp;lt;force-protocol&amp;gt;] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;bridge&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -t [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-usage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-a] [-d | -F &amp;lt;format&amp;gt;] [-s &amp;lt;DD/MM/YYYY,HH:MM:SS&amp;gt;]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e &amp;lt;DD/MM/YYYY,HH:MM:SS&amp;gt;] -f &amp;lt;logfile&amp;gt; [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver los interfaces "físicos"&lt;/b&gt;&lt;br /&gt;
El primer paso es conocer nuestros interfaces físicos, y para ello utilizaremos el argumento &amp;lt;show-phys&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$&lt;b&gt; pfexec /usr/sbin/dladm show-phys&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDIA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; DUPLEX&amp;nbsp;&amp;nbsp;&amp;nbsp; DEVICE&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ethernet&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; full&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ethernet&amp;nbsp;&amp;nbsp; unknown&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; half&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g1&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver los estado de los "enlaces"&lt;/b&gt;&lt;br /&gt;
Ahora debemos conocer "cómo están conectados" nuestros enlaces, para ello, utilizaremos la opción &amp;lt;show-link&amp;gt; &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm show-link&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MTU&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; BRIDGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&lt;br /&gt;
e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; unknown&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;/blockquote&gt;&lt;b&gt;Virtualizar Interfaces de Red&lt;/b&gt;&lt;br /&gt;
Crossbow nos permite virtualizar los interfaces de red físicos, y asignarlos a una zona de Solaris como &amp;lt;ip-type=exclusive&amp;gt; de esta forma, podemos utilizar IPFilter de forma separada, y, también "mover" nuestra zona a otro host sin importarnos si la tarjeta de red es o no la misma.&lt;br /&gt;
&lt;br /&gt;
Por defecto utilizaremos el nombre &amp;lt;vnicN&amp;gt; para definir nuestros interfaces virtuales, esto es debido a que en OpenSolaris existía un problema con la nomenclatura, y os recomiendo no cambiar a nombres "más complicados".&lt;br /&gt;
&lt;br /&gt;
Para la creación de un interface virtual debemos seleccionar sobre que "interface físico" queremos montarlo, en nuestro caso lo haremos sobre &amp;lt;e1000g0&amp;gt; y lo llamaremos &amp;lt;vnic1&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm create-vnic -l e1000g0 vnic1&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Ver Interfaces Virtuales&lt;/b&gt;&lt;br /&gt;
Para ver que interfaces virtuales tenemos declarados en nuestro host, utilizaremos la opción &amp;lt;show-vnic&amp;gt; y para ver su estado utilizaremos &amp;lt;show-link&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm show-vnic&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp; VID&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp; e1000g0 1000&amp;nbsp;&amp;nbsp; 2:8:20:cd:ad:34 random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec dladm show-link&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MTU&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; BRIDGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&lt;br /&gt;
e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; unknown&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g0&lt;/blockquote&gt;Como vemos, &amp;lt;vnic1&amp;gt; está "asociado" al link físico &amp;lt;e1000g0&amp;gt; y se encuentra como "up"&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Manejo de Interface Virtuales&lt;/b&gt;&lt;br /&gt;
La ventaja de uso de interfaces de red virtuales, radica en que se utilizan de igual forma que un interface físico, por lo tanto, podemos utilizar el comando &amp;lt;ifconfig&amp;gt; para asignarle una IP y "levantarlo", por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 plumb&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 192.168.1.20/24 broadcast + up&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1&lt;/b&gt;&lt;br /&gt;
vnic1: flags=1000843&lt;up,broadcast,running,multicast,ipv4&gt; mtu 1500 index 3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 192.168.1.20 netmask ffffff00 broadcast 192.168.1.255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ether 2:8:20:cd:ad:34 &lt;/up,broadcast,running,multicast,ipv4&gt;&lt;/blockquote&gt;Y desconectarlo ...&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 unplumb&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig -a&lt;/b&gt;&lt;br /&gt;
lo0: flags=2001000849&lt;up,loopback,running,multicast,ipv4,virtual&gt; mtu 8232 index 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 127.0.0.1 netmask ff000000 &lt;br /&gt;
e1000g0: flags=1004843&lt;up,broadcast,running,multicast,dhcp,ipv4&gt; mtu 1500 index 2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 192.168.1.12 netmask ffffff00 broadcast 192.168.1.255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ether 8:0:27:86:70:32 &lt;br /&gt;
lo0: flags=2002000849&lt;up,loopback,running,multicast,ipv6,virtual&gt; mtu 8252 index 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet6 ::1/128 &lt;/up,loopback,running,multicast,ipv6,virtual&gt;&lt;/up,broadcast,running,multicast,dhcp,ipv4&gt;&lt;/up,loopback,running,multicast,ipv4,virtual&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un Interface Virtual&lt;/b&gt;&lt;br /&gt;
Para eliminar un interface de red virtual, deberemos utilizar la opción &amp;lt;delete-vnic&amp;gt; del comando &amp;lt;dladm&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm delete-vnic vnic1&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec dladm show-vnic&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Ver las propiedades de un Enlace&lt;/b&gt;&lt;br /&gt;
Una de las opciones más interesantes que nos proporciona esta tecnología es tratar a los interfaces virtuales como "físicos" y, por lo tanto, podemos modificar los parámetros del enlace de forma similar.&lt;br /&gt;
&lt;br /&gt;
Las propiedades de un enlace las obtendremos con la opción &amp;lt;show-linkprop&amp;gt; y el nombre del enlace, en nuestro caso &amp;lt;vnic1&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El valor de PERM nos indicará si es posible modificarlo (rw), o por el contrario si es de sólo lectura (r-). Aunque hay muchas propiedades, hoy nos centraremos en dos: maxbw y priority. &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;itily@openzooey:~$&lt;b&gt; pfexec dladm show-linkprop vnic1&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PERM VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autopush&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r-&amp;nbsp;&amp;nbsp; unknown&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up,down &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500 &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;maxbw&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpus-effective&amp;nbsp; r-&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pool-effective&amp;nbsp; r-&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;priority&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; low, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; medium,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tagmode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; vlanonly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vlanonly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; normal,vlanonly &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mac-nospoof,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; restricted,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip-nospoof,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dhcp-nospoof &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allowed-ips&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allowed-dhcp-cids rw --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings-effective r- --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings-effective r- --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxhwclnt-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txhwclnt-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Modificar una propiedad de un enlace&lt;/b&gt;&lt;br /&gt;
Si la propiedad es de lectura y escritura (rw) entonces, podemos cambiar su valor utilizando la opción &amp;lt;set-linkprop -p OPCION=VALOR&amp;gt;, por ejemplo, vamos a modificar la velocidad de nuestro enlace &amp;lt;vnic1&amp;gt; y vamos a ponerlo a 10Mb en vez de 1000Mb:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm set-linkprop -p maxbw=10m vnic1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm show-vnic&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LINK&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp;&amp;nbsp; VID&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vnic1&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; &lt;b&gt;10&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2:8:20:74:9a:f3&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;&lt;/blockquote&gt;Y ahora la prioridad&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm set-linkprop -p priority=low vnic1&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Crear una Zona con &amp;lt;ip-type=exclusive&amp;gt;&lt;/b&gt;&lt;br /&gt;
Como es costumbre en el blog, después de un poco de teoría, viene la práctica "real". Esta vez vamos a crear una zona de Solaris/OpenIndiana y vamos a asignar la IP como "exclusiva" para poder incluir IPFilter y poder gestionar el ancho de banda que nos consume nuestra zona. &lt;br /&gt;
&lt;br /&gt;
Para ello, primero crearemos un sistema ZFS donde alojaremos la zona -zonepath- llamado &amp;lt;/export/zones&amp;gt; (En mi caso el zpool es "rpool1"). Si ya disponéis de un espacio ZFS para zonas, no es necesario crear uno nuevo.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec zfs create rpool1/export/zones&lt;/b&gt;&lt;/blockquote&gt;Ahora ya podemos crear la zona, utilizaremos como nombre &amp;lt;pkg-srv&amp;gt; -espero que intuyáis para que la utilizaremos-&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec zonecfg -z pkg-srv&lt;/b&gt;&lt;br /&gt;
pkg-srv: No such zone configured&lt;br /&gt;
Use 'create' to begin configuring a new zone.&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;create&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set zonepath=/export/zones/pkg-srv&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set ip-type=exclusive&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set scheduling-class=FSS&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;add net&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv:net&amp;gt; &lt;b&gt;set physical=vnic1&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv:net&amp;gt; &lt;b&gt;end&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;verify&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;commit&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$&lt;b&gt; pfexec zoneadm -z pkg-srv install&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Encender la zona&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec /usr/sbin/zoneadm -z pkg-srv boot&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Conectarse a la Consola&lt;/b&gt;&lt;br /&gt;
Para los que no tenemos un teclado en_US &lt;a href="http://sparcki.blogspot.com/2009/08/como-poner-otro-caracter-de-escape-en.html"&gt;el carácter de escape de &amp;lt;zlogin&amp;gt;&lt;/a&gt; es un poco complicado, así que pongo un carácter más sencillo "#." de ahí la opción -e\# &lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec zlogin -C -e\# pkg-srv&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[Connected to zone 'pkg-srv' console]&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Pantalla de Resumen de Red&lt;/b&gt;&lt;br /&gt;
Aquí os&amp;nbsp; dejo la pantalla de resumen del asistente de configuración de la zona, y como podéis ver, para él (Solaris/OpenIndiana), el uso de una interface virtual no representa ningún cambio, la trata "igual"&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;─ Confirm Information for vnic1 ──────────────────&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;gt; Confirm the following information.&amp;nbsp; If it is correct, press F2; to change any information, press F4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Host name: pkg-srv&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IP address: 192.168.1.20&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; System part of a subnet: Yes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Netmask: 255.255.255.0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enable IPv6: No&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Default Route: Specify one&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Router IP Address: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
────────────────────────────────────────────────&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-2_Continue&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-4_Change&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-6_Help&lt;/blockquote&gt;&lt;b&gt;Instalar IPFilter&lt;/b&gt;&lt;br /&gt;
Una vez finalizado el proceso de configuración de la zona, podemos realizar la &lt;a href="http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html"&gt;Instalación de IPFilter en la Zona&lt;/a&gt; con un simple&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@pkg-srv:~# &lt;b&gt;pkg install ipfilter&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta primera parte hemos visto cómo es muy sencillo crear interfaces virtuales y, como se comportan "igual" que los físicos. Además, al poder modificar las propiedades de una forma "sencilla",&amp;nbsp; tenemos un control más exhaustivo.&lt;br /&gt;
&lt;br /&gt;
En las siguientes entregas veremos un poco más sobre propiedades, flujos y, sobre todo, cómo aplicarlo a nuestros entornos de producción, pero hasta entonces ... a esperar.&lt;br /&gt;
&lt;br /&gt;
Como siempre, cualquier duda o sugerencia es bienvenida,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://hub.opensolaris.org/bin/view/Project+crossbow/WebHome"&gt;Projecto Crossbow OpenSolaris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html"&gt;Gestión Básica de Zonas en Solaris &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html"&gt;Instalar IPFilter en Solaris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comandos  Básicos y No tan Básicos de Solaris&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-6917505518955018497?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=U7LAFHpEUvY:XMHCeUe6ghs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=U7LAFHpEUvY:XMHCeUe6ghs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/U7LAFHpEUvY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/U7LAFHpEUvY/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>3</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-4099909194423725282</guid><pubDate>Fri, 01 Apr 2011 06:01:00 +0000</pubDate><atom:updated>2011-04-01T08:01:00.786+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">uuid</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Instalar PostgreSQL 9.0.3 64bit en OpenIndiana con soporte UUID</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Continuando con algunas de las características de los módulos "contrib" que tenemos en PostgreSQL, y de algunas dependencias de OpenBravo, vamos a ver cómo podemos &lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalar PostgreSQL 9.0.3 en 64bits&lt;/a&gt; sobre OpenIndiana con soporte para UUID.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requisitos Previos&lt;/b&gt;&lt;br /&gt;
Antes de poder continuar, es necesario &lt;a href="http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html"&gt;Instalar OSSP-UUID en OpenIndiana&lt;/a&gt;, en nuestro caso en 64bits -como vimos anteriormente-&lt;br /&gt;
&lt;br /&gt;
Además, os recomiendo -si no lo sabéis ya- leer los post sobre &lt;a href="http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html"&gt;Instalar PostgreSQL 9.x en OpenIndiana&lt;/a&gt; y &lt;a href="http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html"&gt;Requisitos de Instalación de PostgreSQL 9.x en OpenIndiana&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instalación desde el Binario&lt;/b&gt;&lt;br /&gt;
Para aquellos que no tengáis tiempo -o ganas- os dejo una versión de PostgreSQL 9.0.3 64bits con soporte para OSSP UUID que simplemente hay que descargar e Instalar el módulo en PostgreSQL -ver más abajo-&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cd /&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; root@openzooey:/# &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wget http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; root@openzooey:/# &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;gzip -dc&lt;/b&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz &lt;/b&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;| tar xpf -&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; root@openzooey:/# &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;chown -R postgres:postgres /u01&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; root@openzooey:/# &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rm &lt;/b&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Compilación de PostgreSQL&lt;/b&gt;&lt;br /&gt;
La compilación de PostgreSQL no supone mayor problema que añadir en el script de configuración la opción &amp;lt;--with-ossp-uuid&amp;gt; para que nos permita utilizar nuestro creador de UUID.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, tendremos que exportar nuestro &amp;lt;LD_LIBRARY_PATH&amp;gt; para que el script &amp;lt;configure&amp;gt; pueda "testear" correctamente el acceso a la biblioteca "uuid" que hemos compilado.&lt;br /&gt;
&lt;br /&gt;
Una vez hecho esto, la compilación es, igual que siempre. Vamos a verlo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$&lt;b&gt; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ossp-uuid/lib/64&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export CC=cc &lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export CFLAGS="-xO3 &amp;nbsp;-xspace -Xa &amp;nbsp;-xildoff &amp;nbsp;-m64 &amp;nbsp;-xc99=none -xCC -fast -native"&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export LDFLAGS="-R/usr/sfw/lib/64 -R/usr/lib/64 -R/opt/ossp-uuid/lib/64"&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;./configure&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --exec-prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --bindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --libexecdir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sbindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --datadir=/u01/app/postgres/9.0/db/share \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sysconfdir=/u01/app/postgres/9.0/db/etc \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --mandir=/u01/app/postgres/9.0/db/man \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --libdir=/u01/app/postgres/9.0/db/lib/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --includedir=/u01/app/postgres/9.0/db/include \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sharedstatedir=/var/postgres/9.0 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --localstatedir=/var/postgres/9.0 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-nls \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --docdir=/u01/app/postgres/9.0/db/doc \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-system-tzdata=/usr/share/lib/zoneinfo \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-python \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-pam \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-openssl \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libedit-preferred \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libxml \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libxslt \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-gssapi \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-thread-safety \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-dtrace \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --disable-integer-datetimes \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-includes=/usr/include:/usr/sfw/include:/opt/ossp-uuid/include&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-libs=/lib/64:/usr/lib/64:/usr/sfw/lib/64:/opt/ossp-uuid/lib/64&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-ossp-uuid&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación e Instalación&lt;/b&gt;&lt;br /&gt;
Como siempre, ejecutaremos los comando &amp;lt;make&amp;gt; y &amp;lt;pfexec make install&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ &lt;b&gt;make&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/blockquote&gt;&lt;div style="color: #0b5394;"&gt;NOTA: El proceso de instalación completo se encuentra detallado en &lt;a href="http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html"&gt;Cómo Instalar PostgreSQL 9 64bits en OpenIndiana con SMF&lt;/a&gt;&lt;/div&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Compilación del Módulo UUID&lt;/b&gt;&lt;br /&gt;
Para compilar el módulo de UUID, será necesario tener instalado PostgreSQL y situarse en el directorio &amp;lt;contrib&amp;gt; del código fuente de PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
Además, tener en cuenta que debemos compilarlo con GNU Make y no con SVR4 Make. Para comprobar "cual tenéis en el path" simplemente se puede utilizar &amp;lt;which make&amp;gt; y ver cuál es, o, simplemente utilizamos &amp;lt;gmake&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgresql-9.0.3$ &lt;b&gt;cd contrib&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib$ &lt;b&gt;cd uuid-ossp&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib/uuid-ossp$ &lt;b&gt;gmake&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib/uuid-ossp$ &lt;b&gt;pfexec gmake install&lt;/b&gt;&lt;/blockquote&gt;Esto nos creará una nueva biblioteca de enlace dinámico &amp;lt;uuid-ossp.so&amp;gt; en nuestro directorio &amp;lt;lib/64&amp;gt; de PostgreSQL:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;cd&lt;/b&gt; &lt;b&gt;/u01/app/postgres/9.0/db/lib/64&lt;/b&gt;&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;ls -ltrh uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
-rwxr-xr-x&amp;nbsp;&amp;nbsp; 1 root root&amp;nbsp;&amp;nbsp; 16K mar 30 21:09 uuid-ossp.so&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;file uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
uuid-ossp.so:&amp;nbsp;&amp;nbsp; &lt;i&gt;ELF 64-bit LSB dynamic lib&lt;/i&gt; AMD64 Version 1, dynamically linked, not stripped&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;ldd uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libuuid.so.16 =&amp;gt; /opt/ossp-uuid/lib/64/libuuid.so.16&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libc.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/64/libc.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libm.so.2 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/64/libm.so.2&lt;/blockquote&gt;&lt;b&gt;Instalación en PostgreSQL&lt;/b&gt;&lt;br /&gt;
Por último, sólo nos queda crear las funciones en nuestra DB de PostgreSQL, para ello, utilizaremos el script &amp;lt;uuid-ossp.sql&amp;gt; que encontraremos en $POSTGRES_HOME/share/contrib&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/$ cd /u01/app/postgres/9.0/db/share/contrib&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/u01/app/postgres/9.0/db/share/contrib$ ls -ltr&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;total 7&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-rw-r--r-- 1 root mar 30 21:09 uninstall_uuid-ossp.sql&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-rw-r--r-- 1 root mar 30 21:09 uuid-ossp.sql&lt;/span&gt;&lt;/blockquote&gt;Deberemos añadirlo a las DB que queramos, utilizando el comando &amp;lt;psql&amp;gt; y un usuario con permisos para "crear languages"&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U postgres -d testdb -f uuid-ossp.sql &lt;/b&gt;&lt;br /&gt;
SET&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U test -d testdb&lt;/b&gt;&lt;br /&gt;
psql (9.0.3)&lt;br /&gt;
Type "help" for help.&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uuid_generate_v3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
--------------------------------------&lt;br /&gt;
&amp;nbsp;cf16fe52-3365-3a1f-8572-288d8d2aaa46&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.havoctec.com/');&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uuid_generate_v3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
--------------------------------------&lt;br /&gt;
&amp;nbsp;5f2f3ed0-ce36-3968-b065-4bbaf6684d22&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;\q&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Desinstalación del módulo&lt;/b&gt;&lt;br /&gt;
Para poder desinstalarlo, simplemente utilizaremos el script &amp;lt;uninstall_uuid-ossp.sql&amp;gt; de la siguiente forma:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U postgres -d testdb -f&lt;/b&gt; &lt;b&gt;uninstall_uuid-ossp.sql &lt;/b&gt;&lt;br /&gt;
SET&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;/blockquote&gt;&lt;b&gt;Algunos Errores&lt;/b&gt;&lt;br /&gt;
Si no hemos podido instalar correctamente el módulo dentro de PostgreSQL, se nos mostrará el siguiente error al tratar de usar la función:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');&lt;/b&gt;&lt;br /&gt;
ERROR:&amp;nbsp; function uuid_ns_url() does not exist&lt;br /&gt;
LINE 1: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresq...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br /&gt;
HINT:&amp;nbsp; No function matches the given name and argument types. You might need to add explicit type casts.&lt;/blockquote&gt;Si intentamos crear las funciones con un usuario que no tiene permisos suficientes, tendremos el siguiente error:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U testuser -d testdb -f&lt;/b&gt; uuid-ossp.sql &lt;br /&gt;
SET&lt;br /&gt;
psql:uuid-ossp.sql:9: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:14: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:19: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:24: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:29: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:34: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:39: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:44: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:49: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:54: ERROR:&amp;nbsp; permission denied for language c&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Parece más complicado de lo que parece, pero al final, resulta bastante sencillo. Además, debemos recordar que a partir de ahora, tenemos que incluir OSSP-UUID como dependencia de nuestro PostgreSQL &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html"&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Copias de Seguridad en PostgreSQL&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz"&gt;PostgreSQL 9.0.3 x86 64bit para OpenIndiana con UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html"&gt;Instalación de OSSP UUID en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-4099909194423725282?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=VRY_ndFQeBg:iDpR5my8F1o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=VRY_ndFQeBg:iDpR5my8F1o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/VRY_ndFQeBg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/VRY_ndFQeBg/instalar-postgresql-903-64bit-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3833565739195519120</guid><pubDate>Wed, 30 Mar 2011 22:35:00 +0000</pubDate><atom:updated>2011-04-01T09:19:08.797+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">uuid</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Compilar OSSP UUID en OpenIndiana para PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Aunque PostgreSQL tiene un tipo de datos UUID nativo, no existe implementación para la generación de los mismos. Por eso, es necesario utilizar una biblioteca que lo implemente, en nuestro caso OSSP-UUID.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Antes de Empezar&lt;/b&gt;&lt;br /&gt;
Lo cierto es que la Instalación de OSSP-UUID no comienza con buen pie, ya que la &lt;a href="http://www.ossp.org/pkg/lib/uuid/"&gt;página oficial&lt;/a&gt; proporciona un servidor ftp para su descarga, pero ... no ha sido posible, así que he tenido que &lt;a href="http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/"&gt;utilizar algún mirror&lt;/a&gt; para poder descargarlo.&lt;br /&gt;
&lt;br /&gt;
Después de este pequeño contratiempo, ya podemos comenzar con la compilación, no exenta de problemillas, así que si no tenéis mucho tiempo y/o ganas, podéis utilizar la versión que he compilado tanto en 32bit como 64bits, aunque en la versión de 64bits no he incluido soporte para C++ ya que ha sido imposible.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instalación desde el binario&lt;/b&gt;&lt;br /&gt;
Para aquellos que no tengáis tiempo, podéis instalar OSSP-UUID desde el binario descargando y descomprimiendo sobre el directorio &amp;lt;/opt&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;cd /opt&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;wget http://blog.sfchildren.com/blogger/postgres/ossp-uuid/openindiana/ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz&lt;/b&gt;&lt;br /&gt;
...&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;gzip -dc ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz | tar xpf -&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;rm ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz&lt;/b&gt; &lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;cd ossp-uuid&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt/ossp-uuid# &lt;b&gt;bin/64/uuid&lt;/b&gt;&lt;br /&gt;
2645be62-5b18-11e0-8701-8f5adc896ddd&lt;br /&gt;
root@openzooey:/opt/ossp-uuid# &lt;b&gt;bin/uuid&lt;/b&gt;&lt;br /&gt;
2a08e9ca-5b18-11e0-9914-47107445423d&lt;/blockquote&gt;&lt;b&gt;Instalación desde el código fuente&lt;/b&gt;&lt;br /&gt;
Para la instalación desde el código fuente, deberemos tener en cuenta que la compilación en 64bits no es posible realizarla utilizando el flag &amp;lt;--with-cxx&amp;gt; y debemos separar las bibliotecas de 64bits de las de 32bits utilizando &amp;lt;--bindir=&amp;gt; y &amp;lt;--libdir&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Además, hay que hacer un ajuste para que nos enlace de forma correcta la biblioteca, utilizando CC="cc -m64" ya que libtool no lo pasa correctamente &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Descargamos el Código Fuente&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~$ &lt;b&gt;wget http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~$ &lt;b&gt;gzip -dc uuid-1.6.2.tar.gz | tar xpf -&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación en 64bits&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~$ &lt;b&gt;cd uuid-1.6.2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CC="cc -m64"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXX=cc&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CFLAGS="-xO3 -xspace -Xa -xildoff -m64 -xc99=none -fast -native -xCC"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXXFLAGS="-xO3 -xspace -Xa -xildoff -m64 -xc99=none -fast -native -xCC"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;./configure \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --prefix=/opt/ossp-uuid \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --bindir=/opt/ossp-uuid/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --libdir=/opt/ossp-uuid/lib/64&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;itily@openzooey:~/a/uuid-1.6.2$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación en 32bits&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CC="cc"&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CFLAGS="-xO3 -xspace -Xa -xildoff -m32 -xc99=none -xCC"&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXXFLAGS=$CFLAGS&lt;/b&gt; &lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;./configure \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --prefix=/opt/ossp-uuid \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --bindir=/opt/ossp-uuid/bin \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --libdir=/opt/ossp-uuid/lib&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Comprobación de Funcionamiento&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;/opt/ossp-uuid/bin/uuid -v 4 -n 4&lt;/b&gt;&lt;br /&gt;
2dadf532-fddf-4902-b89b-4354f208b882&lt;br /&gt;
441823a3-5f73-4a9e-be28-0ed394091f7f&lt;br /&gt;
926c0d16-99b4-4d72-b5c7-e91933a4818a&lt;br /&gt;
c3347042-de2b-4407-9ba5-03ea4ef5a984&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;/opt/ossp-uuid/bin/64/uuid -v 4 -n 4&lt;/b&gt;&lt;br /&gt;
4376f895-750a-4eef-a865-f06a89baed61&lt;br /&gt;
0e4bf68c-7386-4329-9aaa-9e3c3cbc0672&lt;br /&gt;
cb5134d4-5cbb-401b-aa70-0edcce7f1a04&lt;br /&gt;
ccabcd16-3227-4b59-b0de-3bad19d988f9&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: right;"&gt;&lt;a href="http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html"&gt;Instalar PostgreSQL 9.0.3 64bits con Soporte UUID en OpenIndiana &amp;gt;&amp;gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
Bueno, al principio parece un poco complicado, aunque, al final, no es más que una instalación normal y, como siempre, son los 64bits los que más problemas nos dan.&lt;br /&gt;
&lt;br /&gt;
Ahora sólo nos queda compilar correctamente nuestro &lt;a href="http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html"&gt;PostgreSQL 9 con Soporte par UUID e Instalarlo en OpenIndiana&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Refrencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ossp.org/pkg/lib/uuid/"&gt;Página oficial de OSSP UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/ossp-uuid/openindiana/ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz"&gt;UUID para OpenIndiana x86 32bit y 64bit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html"&gt;Instalar PostgreSQL 9.0.3 64bits en OpenIndiana con soporte UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalar PostgreSQL 9.0.x 64bits en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3833565739195519120?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=_Ib9dfPLxyY:6wHbF-yrZsw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=_Ib9dfPLxyY:6wHbF-yrZsw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/_Ib9dfPLxyY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/_Ib9dfPLxyY/compilar-ossp-uuid-en-openindiana-para.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379000000166</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-6177599213761828302</guid><pubDate>Sun, 20 Mar 2011 14:26:00 +0000</pubDate><atom:updated>2011-03-20T15:26:50.291+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Instalación de PostgreSQL 9.0.3 en OpenIndiana utilizando SMF y RBAC, Requisitos</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Ya hemos hablado varias veces de &lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Cómo Instalar PosgreSQL en OpenIndiana&lt;/a&gt; y, también &lt;a href="http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html"&gt;Cómo Actualizar PostgreSQL en OpenIndiana&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
En esta ocasión, vamos a compilar PostgreSQL 9.0.3 en 64bits y, debido a las peticiones que tengo por parte de vosotros, también en 32bits.&lt;br /&gt;
&lt;br /&gt;
Además, veremos todos los requisitos necesarios para poder gestionar PostgreSQL 9.0.3 en OpenIndiana utilizando Solaris SMF y, utilizar RBAC para su gestión. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Antes de comenzar&lt;/b&gt;&lt;br /&gt;
He visto que alguno de vosotros tenéis problemas con la forma de instalación de PostgreSQL sobre OpenIndiana, y, al parecer también con el role &amp;lt;postgres&amp;gt; o los pasos de compilación.&lt;br /&gt;
&lt;br /&gt;
Todos los pasos de compilación de estos post se realizan sobre OpenIndiana 64bits utilizando para la instalación el formato de &amp;lt;Text Install&amp;gt; y siguiendo los pasos de Instalar &lt;a href="http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html"&gt;OpenIndiana en VirtualBox Paso a Paso&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Así mismo, os recomiendo -si no lo habéis hecho antes- leer el post sobre &lt;a href="http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html"&gt;Actualización de PostgreSQL 9.0.2 64bits en OpenIndiana&lt;/a&gt;, donde explico los pasos de una forma más detallada.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Upgrade desde OpenSolaris&lt;/b&gt;&lt;br /&gt;
Si hemos hecho el &amp;lt;upgrade&amp;gt; desde OpenSolaris, tendremos el role &amp;lt;postgres&amp;gt; y las autorizaciones necesarias, si por el contrario hemos &lt;b&gt;Instalado OpenIndiana directamente, no existirán&lt;/b&gt; y las deberemos crear. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Comprobación de las Autorizaciones&lt;/b&gt;&lt;br /&gt;
Debemos comprobar también que tenemos las autoriaciones necesarias para poder gestionar el servicio &amp;lt;postgresql_9&amp;gt; en nuestro sistema a través de Solaris SMF.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec&amp;nbsp; cat /etc/security/auth_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
solaris.smf.manage.postgres:::Manage Postgres service states::&lt;br /&gt;
solaris.smf.value.postgres:::Change Postgres value properties::&lt;/blockquote&gt;Si no nos devuelve nada, entonces deberemos crearlo, para ello añadiremos las autorizaciones de la siguiente forma&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;echo "solaris.smf.manage.postgres:::Manage Postgres service states::" &amp;gt;&amp;gt; /etc/security/auth_attr&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;echo "solaris.smf.value.postgres:::Change Postgres value properties::" &amp;gt;&amp;gt; /etc/security/auth_attr&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Verificación del Profile &amp;lt;Postgres Administration&amp;gt;&lt;/b&gt;&lt;br /&gt;
Por último, debemos comprobar que tenemos el &amp;lt;profile&amp;gt; de Administración de PostgreSQL definido en nuestro sistema, para ello, haremos&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec cat /etc/security/prof_attr|grep Postgres&lt;/b&gt;&lt;br /&gt;
Postgres Administration::::auths=solaris.smf.manage.postgres,solaris.smf.value.postgres&lt;/blockquote&gt;Si no nos devuelve nada, deberemos crearlo de la siguiente manera:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;echo "Postgres Administration::::auths=solaris.smf.manage.postgres,solaris.smf.value.postgres" &amp;gt;&amp;gt; /etc/security/prof_attr&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Comprobación del Role &amp;lt;postgres&amp;gt;&lt;/b&gt;&lt;br /&gt;
Debemos  comprobar que nuestro sistema tiene el role &amp;lt;postgres&amp;gt;  creado, sino, lo crearemos nosotros, para ello, simplemente buscaremos  en la base de datos &amp;lt;/etc/user_attr&amp;gt; y nos fijaremos en el  valor de &amp;lt;type=&amp;gt; para comprobar que es un  &amp;lt;role&amp;gt;, por ejemplo&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec cat /etc/user_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
postgres::::&lt;b&gt;type=role&lt;/b&gt;;profiles=Postgres Administration,All&lt;/blockquote&gt;Llegado a este punto, debemos tener en cuenta que si no existe el &amp;lt;role&amp;gt; postgres, comprobaremos si es un usuario, ya que en OpenIndiana viene como Usuario y no como Role, para ello comprobaremos que existe en &amp;lt;/etc/passwd&amp;gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;cat /etc/passwd |grep postgres&lt;/b&gt;&lt;br /&gt;
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh&lt;/blockquote&gt;Como vemos, existe como usuario, pero no dispone del &amp;lt;profile&amp;gt; Postgres Aministration que necesitamos, así que vamos a añadirlo utilizando la opción "-P 'Postgres Administration'".&lt;br /&gt;
&lt;br /&gt;
Si intentamos modificar el &amp;lt;profile&amp;gt; de un usuario utilizando el comando &amp;lt;rolemod&amp;gt; OpenIndiana nos contestará con un mensaje come este:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/#&lt;b&gt; rolemod -P 'Postgres Administration' postgres&lt;/b&gt;&lt;br /&gt;
UX: rolemod: ERROR: Users must be modified with ``usermod''.&lt;/blockquote&gt;Así que utilizaremos el comando &amp;lt;usermod&amp;gt; con la misma opción&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;usermod -P "Postgres Administration" postgres&lt;/b&gt;&lt;/blockquote&gt;Comprobamos que tenemos asignado correctamente todo, y que las autorizaciones están definidas. Para ello, utilizaremos el comando &amp;lt;auth postgres&amp;gt; para las autorizaciones y &amp;lt;profiles postgres&amp;gt; para los profiles.&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:~# &lt;b&gt;profiles postgres&lt;/b&gt;&lt;br /&gt;
postgres:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Postgres Administration&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Basic Solaris User&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All&lt;br /&gt;
root@openzooey:~# &lt;b&gt;auths postgres&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;solaris.admin.wusb.read,&lt;br /&gt;
&amp;nbsp;solaris.device.cdrw,&lt;br /&gt;
&amp;nbsp;solaris.device.mount.removable,&lt;br /&gt;
&amp;nbsp;solaris.mail.mailq,&lt;br /&gt;
&amp;nbsp;solaris.profmgr.read,&lt;br /&gt;
&amp;nbsp;&lt;i&gt;solaris.smf.manage.postgres&lt;/i&gt;,&lt;br /&gt;
&amp;nbsp;&lt;i&gt;solaris.smf.value.postgres&lt;/i&gt;&lt;/blockquote&gt;Ahora debemos dedicir si queremos seguir manteniendo el usuario, o por el contrario convertirlo a un Role y así, poder delegar las tareas de administración.&lt;br /&gt;
&lt;br /&gt;
Mi recomendación es convertirlo a un role -si no lo es-, para ello, utilizaremos el comando &amp;lt;usermod&amp;gt; y la opción &amp;lt;-K type=role&amp;gt; para convertirlo, por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;usermod -K type=role postgres&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;cat /etc/user_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
postgres::::type=role;profiles=Postgres Administration&lt;/blockquote&gt;&lt;b&gt;Configurar base de datos de &amp;lt;pfexec&amp;gt;&lt;/b&gt;&lt;br /&gt;
Por último, deberemos definir los comandos que el &amp;lt;profile&amp;gt; Postgres Administration puede ejecutar utilizando &amp;lt;pfexec&amp;gt;, para ello, deberemos de dar de alta.&lt;br /&gt;
&lt;br /&gt;
Es muy importante que entendáis que estáis haciendo, para ello, os recomiendo leer la serie de artículos sobre &lt;a href="http://sparcki.blogspot.com/2010/11/modelo-de-seguridad-de-solaris-rbac.html"&gt;Solaris RBAC y Modelo de Privilegios&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto, ya tenemos la estructura para poder gestionar nuestro &lt;a href="http://sparcki.blogspot.com/2010/10/modelo-de-seguridad-de-solaris-rbac.html"&gt;PostgreSQL con RBAC&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Comprobación de la Arquitectura y Kernel&lt;/b&gt;&lt;br /&gt;
A continuación, vamos a comprobar que tipo de arquitectura tenemos: SPARC o x86 y sobre esta, qué tipo de kernel tenemos, de 32bit o 64bit.&lt;br /&gt;
&lt;br /&gt;
Para verificar nuestra arquitectura, utilizaremos el comando &amp;lt;uname -a&amp;gt; por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec uname -a&lt;/b&gt;&lt;br /&gt;
SunOS openzooey 5.11 oi_148 i86pc i386 i86pc&lt;/blockquote&gt;Hay que tener en cuenta que el comando &amp;lt;uname&amp;gt; no nos va a decir si es o no una arquitectura de 64bits, ya que nos dirá &amp;lt;i386&amp;gt;. Esto es porque la diferencia de arquitectura es para SPARC o i386.&lt;br /&gt;
&lt;br /&gt;
Para saber si nuestro kernel es de 32bit o 64bits, deberemos utilizar el comando &amp;lt;isainfo&amp;gt; con las opciones &amp;lt;-kv&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec isainfo -kv&lt;/b&gt;&lt;br /&gt;
64-bit amd64 kernel modules&lt;/blockquote&gt;Por lo tanto, ahora sabemos que estamos ejecutando OpenIndiana -o Solaris- sobre una plataforma x86 con un kernel de 64bit.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;b&gt;Instalación de PostgreSQL 9.0.3 desde Binarios&lt;/b&gt;&lt;br /&gt;
Ahora que ya sabemos qué arquitectura tenemos, y nuestro tipo de kernel, podemos seleccionar la versión de PostgreSQL 9.0.3 que deseemos.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-32bit-openindiana.tar.gz"&gt;PostgreSQL 9.0.3 i86pc 32bits para OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana.tar.gz"&gt;PostgreSQL 9.0.3 i86pc 64bits para OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;Simplemente, descargaremos el binario que queramos (de 32bit o 64bit) y lo descomprimiremos en nuestro sistema, en &amp;lt;/&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/# &lt;b&gt;cd /&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/# &lt;b&gt;wget http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana.tar.gz&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/# &lt;b&gt;gzip -dc postgresql-9.0.3-x86-64bit-openindiana.tar.gz | tar xvpf -&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/# &lt;b&gt;chown -R postgres:postgres /u01&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/# &lt;b&gt;chmod 750 /u01&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Configuración de PostgreSQL en SMF&lt;/b&gt;&lt;br /&gt;
A continuación configuraremos nuestro servicio &lt;i&gt;postgres&lt;/i&gt; para que sea controlado mediante SMF, para ello, debemos descargar el &lt;a href="http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml"&gt;Manifest para Solaris y OpenIndiana SMF&amp;nbsp; PostgreSQL 9&lt;/a&gt; y el &lt;a href="http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9"&gt;Method para Solaris y OpenIndiana SMF PostgreSQL 9&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# &lt;b&gt;cd /lib/svc/method&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;wget http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; chown root:bin postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; chmod 555 postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; mkdir -p /var/svc/manifest/application/database&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;cd /var/svc/manifest/application/database&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;wget http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;svccfg&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt; &lt;b&gt;validate postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt;&lt;b&gt; import postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt; &lt;b&gt;quit&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;svcs -p postgresql_9&lt;/b&gt;&lt;br /&gt;
STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;br /&gt;
disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9:29:24 svc:/application/database/postgresql_9:default_32bit&lt;br /&gt;
disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10:24:40 svc:/application/database/postgresql_9:default_64bit&lt;/blockquote&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
En esta ocasión hemos visto algunos puntos necesarios para la instalación de PostgreSQL en OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
Además, gracias a los comentarios y dudas, creo que en esta ocasión he intentado despejar esas "dudas" que os asaltan,&lt;br /&gt;
&lt;br /&gt;
Espero que os ayude y, sobre todo, aclarar los pasos de instalación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html"&gt;Actualizar PostgreSQL 9.0.2 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html"&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Copias de Seguridad en PostgreSQL &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;RBAC, Roles y Privilegios - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac_08.html"&gt;RBAC, Roles y Privilegios - Parte 2 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml"&gt;Manifest PostgreSQL 9.0 OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9"&gt;Method PostgreSQL 9.0 OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.postgresql.org/"&gt;Página principal PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-6177599213761828302?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=dYU83-kSoC0:gLWEfJEpcOA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=dYU83-kSoC0:gLWEfJEpcOA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/dYU83-kSoC0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/dYU83-kSoC0/instalacion-de-postgresql-903-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1312656320038432244</guid><pubDate>Thu, 03 Mar 2011 07:00:00 +0000</pubDate><atom:updated>2011-03-03T08:00:03.022+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">projects</category><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo saber el project de un proceso concreto</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En alguna ocasión hemos necesitado saber en que project se encuentra nuestro proceso de Solaris, para ello, simplemente utilizaremos la opción &amp;lt;-o&amp;gt; del comando &amp;lt;ps&amp;gt; que nos permite obtener el formato de salida que queramos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para ver los procesos del usuario &amp;lt;appserver&amp;gt; mostrando su PID, Comando y Project utilizaremos el siguiente comando:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@h1000:/# &lt;b&gt;ps -fu appserver -o pid,args,project&lt;/b&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; PID COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROJECT&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;1672 /usr/jdk/instances/jdk1.6.0/bin&amp;nbsp; asengine.appserve&lt;/span&gt;r&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/03/como-saber-las-variables-de-entorno-de.html"&gt;Cómo saber las variables de entorno de un proceso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/07/como-poner-varios-valores-un-propiedad.html"&gt;Cómo poner varios valores en Resource Controls&lt;/a&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-1312656320038432244?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=B0B7X3mJgOE:H97wwdsNihE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=B0B7X3mJgOE:H97wwdsNihE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/B0B7X3mJgOE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/B0B7X3mJgOE/como-saber-el-project-de-un-proceso.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/03/como-saber-el-project-de-un-proceso.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1231553692848546241</guid><pubDate>Tue, 01 Mar 2011 09:49:00 +0000</pubDate><atom:updated>2011-03-01T10:49:51.485+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rbac</category><category domain="http://www.blogger.com/atom/ns#">privileges</category><category domain="http://www.blogger.com/atom/ns#">tomcat</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Tomcat sobre SMF y RBAC en OpenIndiana y Solaris</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Ya hemos hablado del uso de &lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt;Roles y Privilegios en Solaris&lt;/a&gt; y cómo aplicarlos a Apache Tomcat para que nos permita iniciar el servicio utilizando un usuario no privilegiado en un puerto inferior a 1024. En nuestro caso de Noviembre 2010 hablábamos de &lt;a href="http://sparcki.blogspot.com/2010/11/como-configurar-https-en-tomcat.html"&gt;Cómo configurar HTTPS en Apache Tomcat utilizando Roles y Privilegios&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, si queremos gestionar nuestro servicio utilizando Solaris SMF, deberemos hacer algunos cambios en el archivo manifest de Apache Tomcat.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Asignación de Privilegios&lt;/b&gt;&lt;br /&gt;
Sabemos que para poder utilizar un puerto privilegiado (&amp;lt;1024) con un usuario no privilegiado, deberemos otorgarle el privilegio &amp;lt;net_privaddr&amp;gt;, y eso es lo que hicimos en nuestro post sobre Configurar HTTPS en Apache Tomcat modificando los privilegios en el role &amp;lt;appserver&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# rolemod -K defaultpriv=basic,net_privaddr appserver&lt;/b&gt; &lt;/blockquote&gt;&amp;nbsp;Sin embargo, cuando ejecutamos el servicio utilizando Solaris SMF este privilegio no está "activo" debido a que en nuestro archivo "manifest" no hemos defenido que los tengan, y por lo tanto, sólo tendrá los privilegios "basic".&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Modificar el Archivo Manifest&lt;/b&gt;&lt;br /&gt;
Para añadir los privilegios que deseamos, en nuestro caso &amp;lt;net_privaddr&amp;gt;, simplemente deberemos incluir la propiedad "privileges" en &amp;lt;method_credential&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;method_context project='appserver'&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;method_credential &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user='appserver' &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group='appserver' &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;privileges='basic,net_privaddr'&lt;/b&gt;/&amp;gt;&lt;br /&gt;
&amp;lt;/method_context&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;De esta forma, estamos indicando a SMF que asigne el privilegio &amp;lt;net_privaddr&amp;gt; además de los básicos, y por lo tanto, ahora si que podemos iniciar nuestro Tomcat utilizando &amp;lt;svcadm enable&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Algunos Privilegios Más&lt;/b&gt;&lt;br /&gt;
Recordar que si utilizamos &amp;lt; ! &amp;gt;, entonces, en vez de asignar estamos eliminando el privilegio, así que vamos a utilizarlo para evitar que "por alguna problema" puedan llegar a heredarlos, por lo tanto, nuestro parámetro "privileges" será el siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr'&lt;/div&gt;&lt;/blockquote&gt;&lt;b&gt;Añadimos Autorizaciones&lt;/b&gt;&lt;br /&gt;
Ahora vamos a unirlo al post de &lt;a href="http://sparcki.blogspot.com/2010/10/modelo-de-seguridad-de-solaris-rbac.html"&gt;RBAC y Autorizaciones para Tomcat&lt;/a&gt; que escribí hace un tiempo, y veremos como podemos "encajar" todo en un mismo archivo manifest para utilizar: Autorizaciones y Privilegios&lt;br /&gt;
&lt;br /&gt;
Nota: Es muy recomendable que echéis un vistazo al post de las autorizaciones, si no os acordáis ...&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, nuestra definición de Instancia quedará de la siguiente forma:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;instance name='default_64bits' enabled='false'&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;lt;method_context&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;method_credential &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user='tomcat6'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group='webrunner'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr'/&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;lt;/method_context&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;lt;property_group name='tomcat_6' type='application'&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;propval name='home' type='astring'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; value='/opt/www/tomcat6' /&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;propval name='jvmargs' type='astring'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; value='-d64 -Xms512m -Xmx512m' /&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;propval name='project' type='astring'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; value='tomcat6' /&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;propval name='java_home' type='astring'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; value='/usr/java' /&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;propval name='value_authorization' type='astring'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value='solaris.org.apache.smf.value.tomcat' /&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;lt;/property_group&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/instance&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
Con esto ya tendríamos todo nuestro Apache Tomcat dentro de Solaris SMF y utilizando Autorizaciones. Podéis descargar el archivo manifest completo desde &lt;a href="http://blog.sfchildren.com/blogger/tomcat-auths-privileges/smf/tomcat_6.xml"&gt;Manifest Tomcat Roles y Privilegios&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Aunque parece un poco lioso al principio, luego resulta muy sencillo y, a la larga, nos proporciona una gestión mucho más avanzada y simplificada.&lt;br /&gt;
&lt;br /&gt;
Muchas veces os he recomendado el uso de Roles y Privilegios, pero, espero que con estos ejemplos "reales" podáis ver las ventajas que nos ofrece su uso.&lt;br /&gt;
&lt;br /&gt;
Como siempre, vuestras sugerencias son bienvenidas :D&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/tomcat-auths-privileges/smf/tomcat_6.xml"&gt;Manifest Apache Tomcat con Autorizaciones y Privilegios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/10/modelo-de-seguridad-de-solaris-rbac.html"&gt;Instalación Apache Tomcat Utilizando Solaris Authorizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/12/instalar-apache-tomcat-solaris-10.html"&gt;Instalación de Apache Tomcat con Solaris SMF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-1231553692848546241?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=yPKyiof3f-A:zpYs_N8yIkQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=yPKyiof3f-A:zpYs_N8yIkQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/yPKyiof3f-A" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/yPKyiof3f-A/tomcat-sobre-smf-y-rbac-en-openindiana.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/03/tomcat-sobre-smf-y-rbac-en-openindiana.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3395427447668544758</guid><pubDate>Mon, 14 Feb 2011 20:35:00 +0000</pubDate><atom:updated>2011-02-14T22:17:17.177+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">instalacion</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><title>Instalar OpenIndiana Paso a Paso en VirtualBox</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En esta ocasión vamos a hablar de una instalación de OpenIndiana desde cero, sin tener que pasar por OpenSolaris, aunque como veréis es muy parecida a &lt;a href="http://sparcki.blogspot.com/2010/05/instalacion-de-open-solaris-paso-paso.html"&gt;Cómo Instalar OpenSolaris Paso a Paso&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Al igual que sucede con al &lt;a href="http://sparcki.blogspot.com/2010/01/instalar-solaris-10-paso-paso.html"&gt;Instalación de Solaris Paso a Paso&lt;/a&gt;, utilizaremos el instalador de Texto, y por lo tanto, deberemos utilizar las teclas F2, F3 y F5 para &amp;lt;avanzar, retroceder y salir&amp;gt; según nos indique el instalador.&lt;br /&gt;
&lt;br /&gt;
Como ya hemos hablado muchas veces de cómo crear una máquina Virtual en VirtualBox para Solaris/OpenSolaris, no voy a entrar en muchos detalles sobre ello, sólo a modo de recordatorio, es mejor utilizar una única CPU durante el proceso de Instalación y la memoria mínima debe ser de 780Mb.&lt;br /&gt;
&lt;br /&gt;
Aquí os dejo un&lt;a href="http://blog.sfchildren.com/blogger/instalar-opensolaris/movies/instalar-OpenSolaris-sobre-virtualbox_big.m4v"&gt; video de Cómo Instalar OpenSolaris Paso a Paso&lt;/a&gt; para los despistados :D&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Descargar la Imagen&lt;/b&gt;&lt;br /&gt;
Como hemos comentado antes, vamos a Instalar OpenIndiana utilizando el instalador de Texto, ya que queremos tener una configuración de servidor, y por lo tanto, no necesitamos los paquetes de escritorio y/o interface gráfico. Esto hará que nuestra instalación requiera unos 2.5Gb de espacio, así que se instalará muy rápido.&lt;br /&gt;
&lt;br /&gt;
Podemos descargar la imagen desde &lt;a href="http://openindiana.org/download/"&gt;http://openindiana.org/download/ &lt;/a&gt;y seleccionaremos la Imagen Text Install CD &lt;a href="http://dlc.openindiana.org/isos/148/oi-dev-148-text-x86.iso"&gt;http://dlc.openindiana.org/isos/148/oi-dev-148-text-x86.iso&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Una vez descargada, deberemos darla de alta en nuestra máquina virtual para poder utilizarla como Disco CD de Arranque.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Proceso de Instalación&lt;/b&gt;&lt;br /&gt;
Una vez tengamos nuestra máquina virtual creada, comenzaremos con la instalación de OpenIndiana&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.- Configuración del Teclado.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Seleccionaremos el tipo de teclado que tenemos, en mi caso seleccionaremos: Spanish(39), Spanish (21)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-aezAzuEwdEA/TVlLayw-4ZI/AAAAAAAAAQU/ILkL23pSr-c/s1600/H1000+%255BCorriendo%255D-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://4.bp.blogspot.com/-aezAzuEwdEA/TVlLayw-4ZI/AAAAAAAAAQU/ILkL23pSr-c/s320/H1000+%255BCorriendo%255D-1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-OwQsdy3AE8s/TVlLcIiEGZI/AAAAAAAAAQY/9QQyJs_rdpk/s1600/H1000+%255BCorriendo%255D-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/-OwQsdy3AE8s/TVlLcIiEGZI/AAAAAAAAAQY/9QQyJs_rdpk/s320/H1000+%255BCorriendo%255D-2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;2.- Inicio del proceso de Instalación.&lt;/b&gt;&lt;br /&gt;
Seleccionaremos la opción 1 y pulsaremos INTRO para iniciar la instalación&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QkLr3eCtrJo/TVlLdF3Rp7I/AAAAAAAAAQc/4iW2gOtuHG8/s1600/H1000+%255BCorriendo%255D-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://4.bp.blogspot.com/-QkLr3eCtrJo/TVlLdF3Rp7I/AAAAAAAAAQc/4iW2gOtuHG8/s320/H1000+%255BCorriendo%255D-3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;3.- Pantalla de Ayuda&lt;/b&gt;&lt;br /&gt;
En esta pantalla se nos muestran las indicaciones de cómo funciona el instalador de texto. Se nos recuerda que debemos utilizar las teclas F2 para continuar &amp;lt;si estais en una VT podéis utilizar ESC+Número&amp;gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MwbuM1lta_o/TVlLeOLEAbI/AAAAAAAAAQg/wY-DcP1my0Q/s1600/H1000+%255BCorriendo%255D-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/-MwbuM1lta_o/TVlLeOLEAbI/AAAAAAAAAQg/wY-DcP1my0Q/s320/H1000+%255BCorriendo%255D-4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;4.- Selección del Disco&lt;/b&gt;&lt;br /&gt;
En esta pantalla seleccionaremos el disco sobre el cual queremos instalar Solaris, y, como es nuestro caso nos indica que no tenemos ninguna partición Solaris creada -ya que está vacío-&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7MnsFLI1fM8/TVlLfHbt8MI/AAAAAAAAAQk/cPABnhq_TJM/s1600/H1000+%255BCorriendo%255D-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://2.bp.blogspot.com/-7MnsFLI1fM8/TVlLfHbt8MI/AAAAAAAAAQk/cPABnhq_TJM/s320/H1000+%255BCorriendo%255D-5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;5.- Tamaño de la Partición&lt;/b&gt;&lt;br /&gt;
En esta pantalla podemos seleccionar cómo queremos particionar el disco para Solaris, si lo queremos entero o sólo una parte.&lt;br /&gt;
&lt;br /&gt;
Nosotros vamos a utilizar el disco íntegramente para Solaris, así que seleccionamos &amp;lt;Use the whole disk&amp;gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-RjUjhzAAwEE/TVlLi5-K0yI/AAAAAAAAAQo/MfoJAdG9_3c/s1600/H1000+%255BCorriendo%255D-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/-RjUjhzAAwEE/TVlLi5-K0yI/AAAAAAAAAQo/MfoJAdG9_3c/s320/H1000+%255BCorriendo%255D-6.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;6.- Configuración de la Red&lt;/b&gt;&lt;br /&gt;
En esta pantalla podemos seleccionar la configuración Automática de la Red, o por el contrario no hacer la configuración ahora.&lt;br /&gt;
&lt;br /&gt;
Yo, por costumbre muy antigua, nunca activo la Red de los sistemas mientras los estoy configurando, es una manía que tengo desde hace mucho tiempo para evitar que "alguien" me toque el sistema en su estado "más inseguro" y, por eso, hasta que no lo tengo configurado no levanto la Red.&lt;br /&gt;
&lt;br /&gt;
Todo esto viene de Solaris 8, cuando la instalación activaba un montón de servicios, y por lo tanto, había más problemas, pero ... nunca está de más.&lt;br /&gt;
&lt;br /&gt;
Así que, yo he seleccionado &amp;lt;none&amp;gt; para la configuración de Red, pero podéis utilizar la opción &amp;lt;Automatically&amp;gt; si disponéis de un servidor DHCP, este levantará el interface.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-y3i3pQCEWOY/TVlLj23_RAI/AAAAAAAAAQs/op1B_GYlEtE/s1600/H1000+%255BCorriendo%255D-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-y3i3pQCEWOY/TVlLj23_RAI/AAAAAAAAAQs/op1B_GYlEtE/s320/H1000+%255BCorriendo%255D-7.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;7.- Configuración de la Región&lt;/b&gt;&lt;br /&gt;
En mi caso he seleccionado &amp;lt;Europe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-65LEkfvVtng/TVlLky9QLGI/AAAAAAAAAQw/aO4Yhp0fM-0/s1600/H1000+%255BCorriendo%255D-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-65LEkfvVtng/TVlLky9QLGI/AAAAAAAAAQw/aO4Yhp0fM-0/s320/H1000+%255BCorriendo%255D-8.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;8.- Selección del País&lt;/b&gt;&lt;br /&gt;
En mi caso he seleccionado &amp;lt;Spain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dA9zdn7UrP4/TVlLmIoS-8I/AAAAAAAAAQ0/C8A5MY9bVH8/s1600/H1000+%255BCorriendo%255D-9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-dA9zdn7UrP4/TVlLmIoS-8I/AAAAAAAAAQ0/C8A5MY9bVH8/s320/H1000+%255BCorriendo%255D-9.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;9.- Franja Horaria&lt;/b&gt;&lt;br /&gt;
Como disponemos varias franjas horarias, me pide que selecciona una. Si no es vuestro caso, no aparecera.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_dbfcMIZbqc/TVlLnNvIXZI/AAAAAAAAAQ4/-EUo8fLb-0I/s1600/H1000+%255BCorriendo%255D-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-_dbfcMIZbqc/TVlLnNvIXZI/AAAAAAAAAQ4/-EUo8fLb-0I/s320/H1000+%255BCorriendo%255D-10.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;10.- Ajuste de Fecha y Hora&lt;/b&gt;&lt;br /&gt;
Lo cierto es que nunca me preocupa mucho este paso, principalmente porque siempre &lt;a href="http://sparcki.blogspot.com/2010/06/sincronizar-el-reloj-mediante-ntp-en.html"&gt;Sincronizo el reloj mediante NTP en Solaris y OpenIndiana&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9D3aXU7ANjc/TVlLoR3rX9I/AAAAAAAAAQ8/ZFKUs_yyDXA/s1600/H1000+%255BCorriendo%255D-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/-9D3aXU7ANjc/TVlLoR3rX9I/AAAAAAAAAQ8/ZFKUs_yyDXA/s320/H1000+%255BCorriendo%255D-11.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;11.- Creación de la Contraseña de &amp;lt;root&amp;gt; y usuario &amp;lt;privilegiado&amp;gt;&lt;/b&gt;&lt;br /&gt;
Este paso es importante, ya que a diferencia de Solaris, &amp;lt;root&amp;gt; pasa a ser un &amp;lt;role&amp;gt; y el usuario que creemos pertenecerá al role &amp;lt;root&amp;gt; y tendrá como autorizaciones &amp;lt;solaris.system.power&amp;gt;, solaris.network.autoconf,&amp;nbsp; es decir, puede ejecutar comandos para encender y apagar el sistema, y activar el sistema de configuración automática de red.&lt;br /&gt;
&lt;br /&gt;
Si no sabéis como funcionan, os recomiendo leer &lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac_27.html"&gt;RBAC Roles y Privilegios en Solaris&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8KCFt3A4Eok/TVlLpR3jBBI/AAAAAAAAARA/RtvpX7kQwvs/s1600/H1000+%255BCorriendo%255D-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-8KCFt3A4Eok/TVlLpR3jBBI/AAAAAAAAARA/RtvpX7kQwvs/s320/H1000+%255BCorriendo%255D-12.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;12.- Resumen de la Configuración&lt;/b&gt;&lt;br /&gt;
En esta pantalla nos muestra un resumen de la configuración del instalador, el siguiente paso dará comienzo a la instalación de OpenIndiana, así que si queremos cambiar algo, podemos hacerlo pulsando &amp;lt;F3&amp;gt; o &amp;lt;ESC-3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RYWD8q438dA/TVlLqjjSb7I/AAAAAAAAARE/hUXxQYVb_Ww/s1600/H1000+%255BCorriendo%255D-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-RYWD8q438dA/TVlLqjjSb7I/AAAAAAAAARE/hUXxQYVb_Ww/s320/H1000+%255BCorriendo%255D-13.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;13.- Proceso de Instalación&lt;/b&gt;&lt;br /&gt;
Esto nos llevará unos 30min -más o menos- así que podéis tomaros un descanso ... &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-tndL8ZP_Wa0/TVlLrvUhRvI/AAAAAAAAARI/dm_GAzYge0I/s1600/H1000+%255BCorriendo%255D-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-tndL8ZP_Wa0/TVlLrvUhRvI/AAAAAAAAARI/dm_GAzYge0I/s320/H1000+%255BCorriendo%255D-14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-f35I4gl0ZmI/TVlLs1P2PqI/AAAAAAAAARM/OTWy9E9x-NY/s1600/H1000+%255BCorriendo%255D-15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-f35I4gl0ZmI/TVlLs1P2PqI/AAAAAAAAARM/OTWy9E9x-NY/s320/H1000+%255BCorriendo%255D-15.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;14.- Finalización Proceso&lt;/b&gt;&lt;br /&gt;
Una vez el proceso ha finalizado se muestra la pantalla para que reiniciemos el equipo y ya tendremos instalado -que no configurado- nuestro OpenIndiana&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2DojAzaI3c8/TVlxlNZBfmI/AAAAAAAAARc/kMrAvimS82M/s1600/H1000+%255BCorriendo%255D.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/-2DojAzaI3c8/TVlxlNZBfmI/AAAAAAAAARc/kMrAvimS82M/s320/H1000+%255BCorriendo%255D.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;14.1.- Si algo falla&lt;/b&gt;&lt;br /&gt;
Lo cierto es que puede que el sistema de instalación falle -normalmente por una incompatibilidad de configuración-&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-hZkAq_IOd4c/TVlLuIuoV7I/AAAAAAAAARQ/ByCdCbLDKdM/s1600/H1000+%255BCorriendo%255D-16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-hZkAq_IOd4c/TVlLuIuoV7I/AAAAAAAAARQ/ByCdCbLDKdM/s320/H1000+%255BCorriendo%255D-16.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-voj07pfqlDg/TVlLvP8DBjI/AAAAAAAAARU/b0vVjmSK7ls/s1600/H1000+%255BCorriendo%255D-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Después de la Instalación&lt;/b&gt;&lt;br /&gt;
Una vez instalado OpenIndiana, vamos a configurar nuestro sistema para finalizar la instalación.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Finalizar la Instalación&lt;/b&gt;&lt;br /&gt;
Vamos a configurar&amp;nbsp; algunos parámetros del kernel, para ello, deberemos iniciar la sesión con el usuario que hemos creado -en nuestro caso itily- y después nos cambiaremos a &amp;lt;root&amp;gt; para asumir su rol.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Uhf192e6ins/TVmIiVNMEsI/AAAAAAAAARg/o6PCW7J3MO8/s1600/H1000_OpenIndiana_Finish.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-Uhf192e6ins/TVmIiVNMEsI/AAAAAAAAARg/o6PCW7J3MO8/s320/H1000_OpenIndiana_Finish.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Editaremos el número máximo de descriptores, los asignaremos a 8192 -en vez de 256- y algunos cambios menores. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Wb1Y5GdCQSk/TVmIjuG1dPI/AAAAAAAAARk/BXDwytRJVLI/s1600/H1000_system_HavocTec.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-LkyHo_5q8NQ/TVmNx5a7bEI/AAAAAAAAAR8/HFt8gnc4Aao/s1600/H1000_system_kernel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/-LkyHo_5q8NQ/TVmNx5a7bEI/AAAAAAAAAR8/HFt8gnc4Aao/s320/H1000_system_kernel.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-qxyfDiHO7ZY/TVmKf011NKI/AAAAAAAAAR4/6UoBxTz9iNg/s1600/H1000_system_parameters.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;Pondremos un &amp;lt;Banner&amp;gt; en el acceso mediante ssh -puedes ver &lt;a href="http://sparcki.blogspot.com/2009/12/como-poner-un-banner-ssh-en-solaris-10.html"&gt;Cómo crear un Banner para SSH en Solaris 10&lt;/a&gt;-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-c0HTnXa_y_Y/TVmOIG7-a6I/AAAAAAAAASA/n8RQzCxdCC0/s1600/H1000_HavocTec_Banner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-c0HTnXa_y_Y/TVmOIG7-a6I/AAAAAAAAASA/n8RQzCxdCC0/s320/H1000_HavocTec_Banner.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Activaremos la opción &amp;lt;Banner /etc/issue&amp;gt; en el archivo de configuración de SSH &amp;lt;/etc/ssh/sshd_config&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Oln4DuxhnyE/TVmIm7wI64I/AAAAAAAAARw/Y-lwdYz1-2U/s1600/H1000_sshd_config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/-Oln4DuxhnyE/TVmIm7wI64I/AAAAAAAAARw/Y-lwdYz1-2U/s320/H1000_sshd_config.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Crearemos el archivo &amp;lt;/reconfigure&amp;gt; para que nos reconfigure los dispositivos (no es realmente necesario, pero ... es una constumbre que tengo)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sSHPfAbJgbE/TVmIoEqKqNI/AAAAAAAAAR0/Lod7uEWbKCQ/s1600/H1000_reboot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-sSHPfAbJgbE/TVmIoEqKqNI/AAAAAAAAAR0/Lod7uEWbKCQ/s320/H1000_reboot.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-t9HIbHIA3bM/TVlLwUPFXaI/AAAAAAAAARY/0DOwWo3VuZo/s1600/H1000+%255BCorriendo%255D-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Configurar la Red y Actualizar la Distribución&lt;/b&gt;&lt;br /&gt;
Por último, vamos a levantar el interface y lanzaremos el comando &amp;lt;pkg image-update&amp;gt; para actualizar la imagen a su última versión.&lt;br /&gt;
&lt;br /&gt;
Para ello, utilizaremos la tarjeta &amp;lt;e1000g0&amp;gt; con una configuración mediante DHCP para actualizar la imagen mediante el comando &amp;lt;pkg image-update&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UMlyidENLso/TVmQHaDDr3I/AAAAAAAAASE/41yiuCcNFLU/s1600/H1000_configure_network.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-UMlyidENLso/TVmQHaDDr3I/AAAAAAAAASE/41yiuCcNFLU/s320/H1000_configure_network.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8wuqR288-Y8/TVmQJAoSyrI/AAAAAAAAASI/if3nrlJuNfo/s1600/H1000_pkg_image-update.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-8wuqR288-Y8/TVmQJAoSyrI/AAAAAAAAASI/if3nrlJuNfo/s320/H1000_pkg_image-update.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Sincronizar el Reloj&lt;/b&gt;&lt;br /&gt;
Para finalizar, sincronizaremos el reloj del sistema utilizando un servidor NTP, en mi caso vamos a utilizar &amp;lt;hora.rediris.es&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9vw1ATYzHwA/TVmRSmKkkUI/AAAAAAAAASM/cOg-g327QmM/s1600/H1000_sincronizar_reloj.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-9vw1ATYzHwA/TVmRSmKkkUI/AAAAAAAAASM/cOg-g327QmM/s320/H1000_sincronizar_reloj.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Bueno, hemos visto que OpenIndiana no difiere mucho de OpenSolaris o Solaris 11. Con este formato Paso a Paso, he querido mostrar que OpenIndiana no es tan fiero como lo pintan ...&lt;br /&gt;
&lt;br /&gt;
Espero que os sirva, y como siempre, espero vuestras opiniones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3395427447668544758?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=EKtSnJBuMSA:kBxch_AzA-o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=EKtSnJBuMSA:kBxch_AzA-o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/EKtSnJBuMSA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/EKtSnJBuMSA/instalar-openindiana-b147-paso-paso-en.html</link><author>noreply@blogger.com (Urko Benito)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-aezAzuEwdEA/TVlLayw-4ZI/AAAAAAAAAQU/ILkL23pSr-c/s72-c/H1000+%255BCorriendo%255D-1.png" height="72" width="72" /><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3124200438557614515</guid><pubDate>Fri, 04 Feb 2011 09:06:00 +0000</pubDate><atom:updated>2011-02-04T10:10:45.486+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">chroot</category><title>Cómo montar un CHROOT en tiempos de Virtualización</title><description>&lt;b&gt;Intdoducción&lt;/b&gt;&lt;br /&gt;
Con la llegada de Solaris 10 y sus containers, muchos de nosotros comenzamos a "migrar" nuestros servicios a contenedores y, por ello, dejamos de utilizar -y hablar- de los chroot. Es cierto que un "&lt;a href="http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html"&gt;container&lt;/a&gt;" o "&lt;a href="http://sparcki.blogspot.com/2009/12/diferencias-entre-ldom-dynamic-system.html"&gt;LDOM&lt;/a&gt;" nos proporciona una gestión mucho más fina, y por lo tanto, podemos definir los recursos, usuarios, etc. y sobre todo, aislar totalmente un entorno de otro.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, cuando nuestros recursos físicos están muy limitados -pensemos en un appliance, por ejemplo-, y debemos tratar de tener nuestro "servicio" lo más aislado posible podemos seguir utilizando esta "reliquia del pasado", que, funciona a la perfección.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Nota: Este post es una adaptación a la respuesta que hice en StackOverFlow sobre&lt;/span&gt;&lt;/b&gt; &lt;a href="http://stackoverflow.com/questions/4393163/creating-temporary-sandbox-environment-in-unix/4650920#4650920"&gt;Cómo crear un SandBox en Unix &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Qué es un ChRoot&lt;/b&gt;&lt;br /&gt;
Bueno, técnicamente es ejecutar un proceso con un "/" diferente a nuestro sistema principal, es decir, por ejemplo "/chroot_example/", por lo tanto, para nuestro "proceso" su "/" será "/chroot_example" y no podrá acceder a aquellas partes que necesitamos asegurar&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Para Qué un ChRoot en Tiempos de Containers&lt;/b&gt;&lt;br /&gt;
Bueno, como os decía en la introducción, depende sobre todo de los recursos que dispongamos, así que si no tenemos muchos, deberemos utilizar técnicas como esta para tratar de aislar -en la medida de lo posible- nuestro proceso&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ChRoot o Container&lt;/b&gt;&lt;br /&gt;
Bueno, esta es una pregunta un poco "compleja de responder", aunque intentaré salir "airoso" diciendo: depende. ¿De qué depende? Principalmente de recursos, tipos de servicios y administración. Mi recomendación es, si es posible utilizar &lt;a href="http://sparcki.blogspot.com/2009/12/diferencias-entre-ldom-dynamic-system.html"&gt;Solaris Containers -o LDOMs-&lt;/a&gt; para servicios complejos -&lt;a href="http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html"&gt;PostgreSQL&lt;/a&gt;, &lt;a href="http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html"&gt;Hadoop&lt;/a&gt;, etc.- pero si necesitáis tener un "mini proceso" -o varios- no vais a crear un montón de Containers para cada uno de ellos. Es ahí donde entra nuestro ChRoot, además siempre podemos unir las dos opciones: ChRoot dentro de Containers&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Un Ejemplo Completo&lt;/b&gt;&lt;br /&gt;
Después de todo este "lío", vamos a verlo claro con un ejemplo. Para ello, necesitamos ejecutar un comando -en nuestro caso ls- que nos devuelva el listado de nuestro "directorio /etc" -no el de sistema- donde tenemos la licencia de nuestro aplicativo.&lt;br /&gt;
&lt;br /&gt;
La estructura de nuestro "chroot" sería la siguiente:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + license&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + ls&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + ...&lt;/blockquote&gt;&lt;b&gt;Creación de la Estructura de ChRoot&lt;/b&gt;&lt;br /&gt;
Hemos comentado que un "ChRoot" es definir un nuevo "root" para el sistema de archivos de un proceso, y por lo tanto, deberemos "reproducir" el sistema principal con, al menos los directorios básicos: /etc, /bin, /lib&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; itily@openzooey:~$ &lt;b&gt;mkdir chroot_example&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; itily@openzooey:~$ &lt;b&gt;cd chroot_example/&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; itily@openzooey:~/chroot_example$&lt;b&gt; mkdir -p usr/lib lib bin etc&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; itily@openzooey:~/chroot_example$ &lt;b&gt;cd bin/&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; itily@openzooey:~/chroot_example/bin$ &lt;b&gt;cp /bin/ls .&lt;/b&gt;&lt;/blockquote&gt;Ahora vamos a copiar las "shared lib" que nuestro binario necesita -en nuestro caso ls-, para ello, utilizaremos el comando: &amp;lt;ldd&amp;gt; &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/chroot_example/bin$ &lt;b&gt;ldd ls &lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libsec.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libsec.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libnvpair.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libnvpair.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libcmdutils.so.1 =&amp;gt;&amp;nbsp; /lib/libcmdutils.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libcurses.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libcurses.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libc.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libc.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libavl.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libavl.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libidmap.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/libidmap.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libnsl.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libnsl.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libuutil.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libuutil.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libmp.so.2 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libmp.so.2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libmd.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libmd.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libm.so.2 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/libm.so.2&lt;/blockquote&gt;&lt;br /&gt;
Vamos a copiar las bibliotecas utilizando un pequeño script. Desde el directorio &amp;lt;bin&amp;gt; de nuestro &amp;lt;chroot&amp;gt; hacemos:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/chroot_example/bin$ &lt;b&gt;ldd ls |awk '{print "cp "$3" .."$3}'&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libsec.so.1 ../lib/libsec.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libnvpair.so.1 ../lib/libnvpair.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libcmdutils.so.1 ../lib/libcmdutils.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libcurses.so.1 ../lib/libcurses.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libc.so.1 ../lib/libc.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libavl.so.1 ../lib/libavl.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /usr/lib/libidmap.so.1 ../usr/lib/libidmap.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libnsl.so.1 ../lib/libnsl.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libuutil.so.1 ../lib/libuutil.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libmp.so.2 ../lib/libmp.so.2&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libmd.so.1 ../lib/libmd.so.1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cp /lib/libm.so.2 ../lib/libm.so.2&lt;/span&gt;&lt;/blockquote&gt;Una vez verificado, ya podemos copiar las bibliotecas&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/chroot_example/bin$ &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;ldd /bin/ls |awk '{print "cp "$3" .."$3}'|bash&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
itily@openzooey:~/chroot_example/bin$&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;/blockquote&gt;Ahora tenemos nuestra&amp;nbsp; estructura completa, y tiene la siguiente forma:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/chroot_example$ &lt;b&gt;ls -l&lt;/b&gt;&lt;br /&gt;
total 12&lt;br /&gt;
drwxr-xr-x&amp;nbsp;&amp;nbsp; 2 itily&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 dic 22 14:37 bin&lt;br /&gt;
drwxr-xr-x&amp;nbsp;&amp;nbsp; 2 itily&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 ene 10 20:43 etc&lt;br /&gt;
drwxr-xr-x&amp;nbsp;&amp;nbsp; 2 itily&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 ene 10 20:48 lib&lt;br /&gt;
drwxr-xr-x&amp;nbsp;&amp;nbsp; 3 itily&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 ene 10 20:40 usr&lt;/blockquote&gt;Añadimos los archivos de &amp;lt;group&amp;gt; y &amp;lt;passwd&amp;gt; con el usuario que será el encargado de ejecutar el proceso -en mi caso itily- y creamos nuestra "licencia"&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/chroot_example$ &lt;b&gt;echo "this is a test" &amp;gt; etc/license&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/chroot_example$ &lt;b&gt;cd etc/&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/chroot_example/etc$ &lt;b&gt;cat /etc/group |grep staff &amp;gt; group&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/chroot_example/etc$ &lt;b&gt;cat /etc/passwd |grep itily &amp;gt; passwd&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Ejecutar el comando &amp;lt;chroot&amp;gt;&lt;/b&gt;&lt;br /&gt;
Por último, ya sólo nos queda ejecutar el comando &amp;lt; que tiene el siguiente formato:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;chroot rootdir command [arg ...]&lt;/span&gt;&lt;/blockquote&gt;Debemos tener en cuenta que si ejecutamos el comando &amp;lt;chroot&amp;gt; con un usuario sin privilegios de "root", tendremos el siguiente mensaje&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$&lt;b&gt; chroot chroot_example bin/ls /etc&lt;/b&gt;chroot: cannot change root directory to chroot_example: Not owner&lt;/blockquote&gt;Así que utilizaremos &amp;lt;pfexec&amp;gt; -si tenemos asignado el rol de root, o nos cambiaremos a root- para ejecutarlo:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec chroot chroot_example /bin/ls -l /etc&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 6&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -rw-r--r--&amp;nbsp;&amp;nbsp; 1 101&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11 Jan 10 19:43 group&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -rw-r--r--&amp;nbsp;&amp;nbsp; 1 101&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18 Jan 10 19:42 license&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -rw-r--r--&amp;nbsp;&amp;nbsp; 1 101&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 49 Jan 10 19:43 passwd&lt;/blockquote&gt;&lt;br /&gt;
Ya está! Hemos conseguido que nuestro comando &amp;lt;ls&amp;gt; nos muestre nuestro directorio &amp;lt;/chroot_example/etc&amp;gt; como &amp;lt;/etc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Aunque a veces parezca que las tecnologías antiguas ya no sirven, puede que en circunstancias nos ayuden, además, &amp;lt;chroot&amp;gt; nos permite montar sin "muchas" complicaciones algunas tareas sencillas sin tener que estar creando cientos de Containers para ello.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/4393163/creating-temporary-sandbox-environment-in-unix/4650920#4650920"&gt;Respuesta en StackOverFlow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/12/diferencias-entre-ldom-dynamic-system.html"&gt;Diferencias entre LDOM, Dynamic System Domains y Solaris Zones &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3124200438557614515?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=J1j4sukxOZo:VogLWrpe1P4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J1j4sukxOZo:VogLWrpe1P4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/J1j4sukxOZo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/J1j4sukxOZo/como-montar-un-chroot-en-tiempos-de.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Madrid, España</georss:featurename><georss:point>40.4166909 -3.7003454</georss:point><georss:box>40.1553064 -4.1672644 40.6780754 -3.2334264</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/02/como-montar-un-chroot-en-tiempos-de.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-131197648679194040</guid><pubDate>Tue, 25 Jan 2011 16:44:00 +0000</pubDate><atom:updated>2011-01-25T17:44:36.758+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo Crear un FileSystem en Memoria utilizando TMPFS</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Vamos a ver cómo podemos utilizar el FileSystem TMPFS para crear un sistema de ficheros en Memoria en Solaris.&lt;br /&gt;
&lt;br /&gt;
Ya hemos hablado en otras ocasiones sobre el sistema TMPFS y su relación con la &lt;a href="http://sparcki.blogspot.com/2009/09/como-ampliar-la-swap-en-solaris.html"&gt;swap en Solaris&lt;/a&gt;, vimos &lt;a href="http://sparcki.blogspot.com/2010/10/como-limitar-el-tamano-de-tmp-en.html"&gt;Cómo limitar el tamaño de /tmp en Solaris&lt;/a&gt;, sin embargo, hoy vamos a ver cómo podemos utilizarlo para crearnos un sistema de ficheros muy rápido.&lt;br /&gt;
&lt;br /&gt;
Para ello, imaginando que nuestro directorio de montaje es &amp;lt;/var/memory_fs&amp;gt; y que queremos asignarle un tamaño de 60Mb, haremos lo siguiente&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/$ &lt;b&gt;pfexec /usr/sbin/mount -F tmpfs -o size=60m -O swap /var/memory_fs&lt;/b&gt;&lt;br /&gt;
itily@openzooey:/$ &lt;b&gt;pfexec df -h /var/memory_fs&lt;/b&gt;&lt;br /&gt;
Filesystem&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size&amp;nbsp;&amp;nbsp; used&amp;nbsp; avail capacity&amp;nbsp; Mounted on&lt;br /&gt;
swap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0K&amp;nbsp;&amp;nbsp;&amp;nbsp; 60M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0%&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/memory_fs&lt;/div&gt;&lt;/blockquote&gt;Y ya podemos trabajar con nuestro sistema de ficheros en memoria de forma normal.&lt;br /&gt;
&lt;br /&gt;
Par desmontarlo, simplemente haremos un &amp;lt;umount&amp;gt; como siempre&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:/$ &lt;b&gt;pfexec /sbin/umount /var/memory_fs&lt;/b&gt;&lt;/blockquote&gt;Por último, si queremos que cada vez que nuestro sistema se inicie monte de forma automática el FileSystem, editaremos el archivo &amp;lt;/etc/vfstab&amp;gt; &lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~$ &lt;b&gt;pfexec vi /etc/vfstab&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&lt;b&gt;swap&amp;nbsp;&amp;nbsp; -&amp;nbsp; /var/memory_fs&amp;nbsp; tmpfs&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size=60m&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;:wq&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html"&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/08/como-saber-si-solaris-esta-paginando.html"&gt;Cómo saber si Solaris está paginando&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/09/como-ampliar-la-swap-en-solaris.html"&gt;Cómo ampliar la SWAP de Solaris &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-131197648679194040?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=0nhwY1rh_I8:AqOfp_IRZE0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=0nhwY1rh_I8:AqOfp_IRZE0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/0nhwY1rh_I8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/0nhwY1rh_I8/como-crear-un-filesystem-en-memoria.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/01/como-crear-un-filesystem-en-memoria.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3923763308045459092</guid><pubDate>Sun, 16 Jan 2011 11:02:00 +0000</pubDate><atom:updated>2011-01-16T12:02:05.803+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Actualización a PostgreSQL 9.0.2 en OpenIndiana b148</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En anteriores post hemos hablado de &lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Cómo Instalar PostgreSQL 9.x en OpenIndiana&lt;/a&gt;, así que este será un revisión mínima, por ello os animos a revisarlo.&lt;br /&gt;
&lt;br /&gt;
La nueva versión de PostgreSQL 9.0.2 corrige algunos problemas de &lt;i&gt;memory leak&lt;/i&gt; y por ello, es muy recomendable su actualización. Podéis encontrar todos los cambios en el &lt;a href="http://www.postgresql.org/docs/9.0/static/release-9-0-2.html"&gt;ChangeLog de PostgreSQL&lt;/a&gt;&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&lt;b&gt;En este post veremos cómo actualizar PostgreSQL 9.0 64bits a la versión PostgreSQL 9.0.2 64bits.&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Antes de Comenzar&lt;/b&gt;&lt;br /&gt;
Bueno, la actualización a PostgreSQL 9.0.2 no requiere hacer un "dump/restore" siempre que nos encontremos en la línea PostgreSQL 9.x, sin embargo, yo recomiendo SIEMPRE hacer un backup antes de comenzar.&lt;br /&gt;
&lt;br /&gt;
Si nos encontramos en una&lt;b&gt; versión diferente, deberemos realizar un "dump/restore" obligatoriamente&lt;/b&gt;, así como una instalación "limpia" de PostgreSQL 9.x y, por lo tanto, deberemos iniciar la estrucutra de &lt;i&gt;PGDATA&lt;/i&gt;. &lt;br /&gt;
&lt;br /&gt;
Lo cierto, es que cuando comencé a escribir el post, hice una pequeña prueba de actualización "ahí a lo bruto" sin copia de seguridad ni nada, Pensé ¿total por qué va a fallar? Pues ... falló! y me quedé sin mi DB, menos mal que teneía copia de seguridad del día anterior y, que siendo sinceros, es una PostgreSQL de pruebas y no supone mayor problema.&lt;br /&gt;
&lt;br /&gt;
Por eso, antes de comenzar, ya sabéis, si tenéis alguna duda de cómo se hacen, aquí os dejo un post de &lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Cómo Realizar Copias de Seguridad en PostgreSQL&lt;/a&gt;.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Para versiones anteriores a PostgreSQL 9.x&lt;/b&gt;&lt;br /&gt;
Para aquellos que estéis en una versión anterior, os recomiendo primero &lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalar PostgreSQL 9.0 en OpenIndiana&lt;/a&gt;, y que luego continueis con este post. Recordar además, que es &lt;b&gt;necesario realizar un "dump/restore"&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Para versiones PostgreSQL 9.x&lt;/b&gt;&lt;br /&gt;
Para los demás, comenzamos ... podéis realizar la actualización desde el código fuente, o instalar directamente los binarios.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Obtener el Codigo Fuente&lt;/b&gt;&lt;br /&gt;
Lo primero que debemos hacer es obtener el código fuente de PostgreSQL 9.0.2 que descargaremos de su página oficial, aquí os dejo un enlace a la&lt;a href="http://www.postgresql.org/ftp/source/v9.0.2/"&gt; página de descargas de PosgreSQL&lt;/a&gt;.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Instalar desde el Binario&lt;/b&gt;&lt;br /&gt;
Para aquellos que o bien no tenéis la posibilidad de compilarlo, o no os apetece :D, aquí os dejo la version compilada para x86 en 64bits de PostgreSQL que he realizado.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.sfchildren.com/blogger/postgres/9.0.2/openindiana/postgresql-9.0.2-x86-64bits.tar.gz"&gt;PostgreSQL 64 bit x86 OpenIndiana b148&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;Una vez descargado podéis ir al paso "Instalar PostgreSQL" para completar la actualización.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Preparar el Entorno&lt;/b&gt;&lt;br /&gt;
Debemos comprobar que tenemos&amp;nbsp; todos los binarios necesarios para poder compilar, es decir, compilador, make,&amp;nbsp; etc.&lt;br /&gt;
&lt;br /&gt;
Si activamos la opción &amp;lt;--enable-dtrace&amp;gt; deberemos tener el directorio &amp;lt;/usr/sbin&amp;gt; en nuestro PATH.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;export PATH=$PATH:/usr/sbin:/sbin:/usr/ccs/bin/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;which dtrace&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/sbin/dtrace&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;which cc&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/bin/cc&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;which make&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/bin/make&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;which ar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/bin/ar&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;which python&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/bin/python&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Compilar PostgreSQL&lt;/b&gt;&lt;br /&gt;
Para compilar esta versión de PostgreSQL utilizaremos las mismas opciones que antes, por lo tanto, podemos hacer un &amp;lt;copy and paste&amp;gt;, de nuestro archivo &amp;lt;config.log&amp;gt;. Para aquellos que no tenéis el &amp;lt;config.log&amp;gt;, aquí os dejo los pasos.&lt;br /&gt;
&lt;br /&gt;
Recordar que, yo utilizo como $POSTGRES_HOME siempre el directorio &amp;lt;/u01/app/postgres/&amp;gt; al puro estilo &lt;i&gt;OFA&lt;/i&gt;, ...&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ &lt;b&gt;export CC=cc&amp;nbsp;&lt;/b&gt;&amp;nbsp; &lt;br /&gt;
$ &lt;b&gt;export CFLAGS="-xO3&amp;nbsp; -xspace -Xa&amp;nbsp; -xildoff&amp;nbsp; -m64&amp;nbsp; -xc99=none -xCC -fast -native"&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export LDFLAGS="-R/usr/sfw/lib/64 -R/usr/lib/64"&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;./configure \&lt;/b&gt;&lt;br /&gt;
--prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
--exec-prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
--bindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
--libexecdir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
--sbindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
--datadir=/u01/app/postgres/9.0/db/share \&lt;br /&gt;
--sysconfdir=/u01/app/postgres/9.0/db/etc \&lt;br /&gt;
--mandir=/u01/app/postgres/9.0/db/man \&lt;br /&gt;
--libdir=/u01/app/postgres/9.0/db/lib/64 \&lt;br /&gt;
--includedir=/u01/app/postgres/9.0/db/include \&lt;br /&gt;
--sharedstatedir=/var/postgres/9.0 \&lt;br /&gt;
--localstatedir=/var/postgres/9.0 \&lt;br /&gt;
--enable-nls \&lt;br /&gt;
--docdir=/u01/app/postgres/9.0/db/doc \&lt;br /&gt;
--with-system-tzdata=/usr/share/lib/zoneinfo \&lt;br /&gt;
--with-python \&lt;br /&gt;
--with-pam \&lt;br /&gt;
--with-openssl \&lt;br /&gt;
--with-libedit-preferred \&lt;br /&gt;
--with-libxml \&lt;br /&gt;
--with-libxslt \&lt;br /&gt;
--with-gssapi \&lt;br /&gt;
--enable-thread-safety \&lt;br /&gt;
--enable-dtrace \&lt;br /&gt;
--disable-integer-datetimes \&lt;br /&gt;
--with-includes=/usr/include:/usr/sfw/include \&lt;br /&gt;
--with-libs=/lib/64:/usr/lib/64:/usr/sfw/lib/64 \&lt;br /&gt;
$ &lt;b&gt;make&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Instalación de PostgreSQL&lt;/b&gt;&lt;br /&gt;
Como es una actualización, antes de lanzar nuestro &amp;lt;make install&amp;gt; -o descomprimir el &amp;lt;tar.gz&amp;gt;- &lt;b&gt;debemos realizar una copia de seguridad y detener nuestra PostgreSQL&lt;/b&gt; de forma correcta, para ello, deberemos asumir el &amp;lt;role&amp;gt; de &amp;lt;postgres&amp;gt; o uno que tengan privilegios para detenerlo e iniciarlo.&lt;br /&gt;
&lt;br /&gt;
En mi caso, utilizaré el &amp;lt;role postgres&amp;gt; para realizar las tareas.&lt;br /&gt;
&lt;br /&gt;
Si es la primera vez que oyes hablar de roles y privilegios, te animo a que leas&lt;a href="http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html"&gt; RBAC, Roles y Privilegios de Solaris&lt;/a&gt; antes de continuar.&lt;br /&gt;
&lt;br /&gt;
Comprobamos que nuestro servicio de PostgreSQL está activo, hacemos un backup y lo desactivamos.&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;pfexec svcs postgresql_9:default_64bit&lt;/b&gt;&lt;br /&gt;
STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;br /&gt;
online&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11:26:07 svc:/application/database/postgresql_9:default_64bit&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/pg_dump -C -Z9 -f /export/home/postgres/backups-pre-upgrade.dump.gz&lt;/b&gt;&lt;/span&gt; &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mydatabase&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;gzip -dc /export/home/postgres/backups-pre-upgrade.dump.gz |head -3 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;--&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-- PostgreSQL database dump&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;--&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$&lt;b&gt; pfexec /usr/sbin/svcadm disable postgresql_9:default_64bit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;pfexec svcs postgresql_9:default_64bit&lt;/b&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt;disabled&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11:33:19 svc:/application/database/postgresql_9:default_64bit&lt;/span&gt;&lt;/blockquote&gt;Ahora ya estamos en disposición de realizar nuestro &amp;lt;make install&amp;gt; y proceder a la instalación de PostgreSQL en nuestro sistema o, si has optado por actualizar desde el binario, a descomprimirlo.&lt;br /&gt;
&lt;br /&gt;
Lanzar &amp;amp;lt:make install&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;itily@openzooey:~/postgres/postgresql-9.0.2$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/div&gt;&lt;/blockquote&gt;O descargarlo y descromprimirlo -hay que hacerlo como &amp;lt;root&amp;gt; o con un usuario con permisos suficientes-&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;cd /&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;wget http://blog.sfchildren.com/blogger/postgres/9.0.2/openindiana/postgresql-9.0.2-x86-64bits.tar.gz&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;gzip -dc postgresql-9.0.2-x86-64bits.tar.gz | tar xpf -&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;chown -R postgres:postgres /u01&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;rm postgresql-9.0.2-x86-64bits.tar.gz &lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Activamos el Servicio&lt;/b&gt;&lt;br /&gt;
Vamos a utilizar SMF para gestionar nuestro servicio, por lo tanto, sólo nos queda hacer un &amp;lt;enable&amp;gt; del mismo&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;root@openzooey:/# &lt;b&gt;svcadm enable postgresql_9:default_64bit&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;svcs postgresql_9:default_64bit&lt;/b&gt;&lt;br /&gt;
STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;br /&gt;
online&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13:05:36 svc:/application/database/postgresql_9:default_64bit&lt;/blockquote&gt;&lt;b&gt;Comprobamos nuestro PostgreSQL&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U postgres&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;psql (9.0.2)&lt;/i&gt;&lt;br /&gt;
Type "help" for help.&lt;br /&gt;
&lt;br /&gt;
postgres=# &lt;b&gt;select count(1) from pg_index;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;count &lt;br /&gt;
-------&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 101&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
postgres=# &lt;b&gt;\q&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Bueno, como hemos visto, la actualización de PostgreSQL no supone mayores problemas, siempre que estemos en el mismo nivel de versión, es decir, 9.x. Hemos dejado en el tintero las diferentes formas de actualización desde otras versiones, ya que eso requiere todo un post para ello.&lt;br /&gt;
&lt;br /&gt;
Recordar que las buenas práticas de SysAdmin nos obligan a realizar copias de seguridad, y, que si por agún momento se nos pasa, entonces aparecerá nuestro querido amigo "Murphy" y nos dará algún susto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html"&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html"&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html"&gt;Copias de Seguridad en PostgreSQL &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-3923763308045459092?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=9fjWXsou27I:7RqI-eAVXHw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=9fjWXsou27I:7RqI-eAVXHw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/9fjWXsou27I" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/9fjWXsou27I/actualizacion-postgresql-902-en.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-2857998415768304290</guid><pubDate>Mon, 10 Jan 2011 09:02:00 +0000</pubDate><atom:updated>2011-01-10T10:02:29.081+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Feliz 2011 a todos los SysAdmin de Solaris</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Un nuevo año se ha asomado a nuestra vida, el 2011, con él comienzan los repasos del año que nos acaba de dejar, y las nuevas promesas y objetivos del año nuevo.&lt;br /&gt;
&lt;br /&gt;
Si hacemos un repaso a nuestro 2010 se han producido muchas noticias -algunas importantes- como la "muerte de OpenSolaris", y el "nacimiento de OpenIndiana". Otras en referencia a mi carrera profesional con la creación de &lt;a href="http://www.havoctec.com/"&gt;HavocTec&lt;/a&gt; como consultora de Solaris y PostgreSQL, de la que soy socio fundador :D &lt;br /&gt;
&lt;br /&gt;
Pero si nos fijamos en la trayectoria del Blog, vemos que -creo- he evolucionado y hemos tocado muchos de los temas principales de Solaris, PostgreSQL y algo de Oracle.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, todavía queda mucho que contar. Con la introducción de OpenIndiana/OpenSolaris en el "juego" de Solaris, tenemos un nuevo sistema de paquetes, IPS. La maduración de la utilización de&amp;nbsp; BootEnviroment -ya que no es una cosa nueva-, Crossbow y la "explosión" de las zonas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Qué me gustaría para este nuevo año&lt;/b&gt;&lt;br /&gt;
Lo cierto es que creo que debemos introducirnos en el mundo de IPS, ventajas e incovenientes, así como "repositorios personalizados", réplicas y técnicas de seguridad -gracias a la sugerencia de NocThulh- &lt;br /&gt;
&lt;br /&gt;
Profundizar en el uso de BootEnviroment(s) para mejorar -o marcar unas buenas prácticas- el procedimiento de parcheo de un Solaris/OpenIndiana con el objeto de reducir el "downtime"&lt;br /&gt;
&lt;br /&gt;
Crossbow como tecnología de virtualización de red, optimización y gestión de los recursos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Un repositorio público&lt;/b&gt;&lt;br /&gt;
Además, crearemos un repositorio público donde se encuentren los binarios que vamos compilando en el blog, con el objeto de hacer un poco más sencilla la vida a los SysAdmin principiantes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PostgreSQL&lt;/b&gt;&lt;br /&gt;
Creo que este año es la maduración de PostgreSQL como RDBMS "profesional", por ello, hablaremos de cómo implementarlo, cómo gestionarlo y administrarlo.&lt;br /&gt;
&lt;br /&gt;
Veremos la replicación que -a partir de la 9.x- se ha introducido, y nos puede aportar gran escalado y seguridad&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Vuestras Sugerencias&lt;/b&gt;&lt;br /&gt;
Y, cómo no, aquellas sugerencias que me hacéis llegar al blog y/o al correo. Por ello, os animo a sugerir diferentes temas y tratarlos de resolver en este nuevo año que comienza&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Veremos cómo se depara el año, pero promete que sea entretenido ...&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue; text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Feliz 2011&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Bienvenido a &lt;span style="color: #0b5394;"&gt;Solaris BlackBox&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;tu blog de Solaris&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3023674627195806772-2857998415768304290?l=sparcki.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:tKBiNdHYW3c"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=tKBiNdHYW3c" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?i=J9wL8JKPfbc:l15sgU4FQak:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SolarisBlackBox?a=J9wL8JKPfbc:l15sgU4FQak:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SolarisBlackBox?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolarisBlackBox/~4/J9wL8JKPfbc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/SolarisBlackBox/~3/J9wL8JKPfbc/feliz-2011-todos-los-sysadmin-de.html</link><author>noreply@blogger.com (Urko Benito)</author><thr:total>1</thr:total><georss:featurename>Saragossa, Spain</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box><feedburner:origLink>http://sparcki.blogspot.com/2011/01/feliz-2011-todos-los-sysadmin-de.html</feedburner:origLink></item></channel></rss>

