<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20070501</id><updated>2011-12-15T03:47:24.725+01:00</updated><title type='text'>EMRE's IT Blog</title><subtitle type='html'>12 dita o uno, dipende da come suoni...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20070501.post-116922291444759333</id><published>2007-01-19T17:08:00.000+01:00</published><updated>2007-01-19T17:18:28.643+01:00</updated><title type='text'>Managing Chained Rows</title><content type='html'>&lt;h3&gt;&lt;b&gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:130%;"  &gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:13;"  lang="EN-GB" &gt;Listing Chained  Rows of Tables and Clusters&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-GB"&gt;&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;&lt;a id="sthref2780" name="sthref2780"&gt;&lt;/a&gt;&lt;a id="sthref2781" name="sthref2781"&gt;&lt;/a&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;You can look at the chained and migrated rows of a table  or cluster using the &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  statement with the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;LIST&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; clause. The  results of this statement are stored in a specified table created explicitly to  accept the information returned by the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;LIST&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; clause. These  results are useful in determining whether you have enough room for updates to  rows. For example, this information can show whether &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;PCTFREE&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; is set  appropriately for the table or cluster.&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;a id="sthref2782" name="sthref2782"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:100%;"  &gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:12;"  lang="EN-GB" &gt;Creating a  CHAINED_ROWS Table&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-GB"&gt;&lt;/span&gt;&lt;/h4&gt; &lt;p&gt;&lt;a id="sthref2783" name="sthref2783"&gt;&lt;/a&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;To create the table to accept  data returned by an &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE ... LIST&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; statement,  execute the &lt;/span&gt;&lt;a id="sthref2784" name="sthref2784"&gt;&lt;/a&gt;&lt;a id="sthref2785" name="sthref2785"&gt;&lt;/a&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;UTLCHAIN.SQL&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  or  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;UTLCHN1.SQL&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  script. These scripts are provided by the database. They create a table named  &lt;/span&gt;&lt;a id="sthref2786" name="sthref2786"&gt;&lt;/a&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; in  the schema of the user submitting the script.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;div align="center"&gt; &lt;table class="MsoNormalTable" title="This is a layout table to format a note" style="width: 80%;" summary="This is a layout table to format a note" border="1" cellpadding="0" cellspacing="0" frame="hsides" rules="groups" width="80%"&gt;  &lt;tbody&gt; &lt;tr&gt; &lt;td style="padding: 2.25pt;"&gt; &lt;p&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Note:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;span lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Your choice of script to execute for creating the  &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; table  is dependent upon the compatibility level of your database and the type of table  you are analyzing. &lt;/span&gt;See the &lt;em&gt;&lt;i&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;a title="http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_4005.htm#SQLRF01105" href="http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_4005.htm#SQLRF01105"&gt; Oracle  Database SQL Reference&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt; for more  information.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;After a &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;span lang="EN-GB"&gt; table  is created, you specify it in the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;INTO&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; clause of the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  statement. For example, the following statement inserts rows containing  information about the chained rows in the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;emp_dept&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; cluster  into the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  table:&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE CLUSTER emp_dept LIST CHAINED ROWS INTO CHAINED_ROWS;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;div align="center"&gt; &lt;table class="MsoNormalTable" title="This is a layout table to format a tip" style="width: 80%;" summary="This is a layout table to format a tip" border="1" cellpadding="0" cellspacing="0" frame="hsides" rules="groups" width="80%"&gt;  &lt;tbody&gt; &lt;tr&gt; &lt;td style="padding: 2.25pt;"&gt; &lt;p&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;See Also:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;span lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;i&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;&lt;a title="http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10755/statviews_part.htm#REFRN002" href="http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10755/statviews_part.htm#REFRN002"&gt; &lt;span title="http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10755/statviews_part.htm#REFRN002" lang="EN-GB"&gt;Oracle  Database Reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt;&lt;span lang="EN-GB"&gt; for a  description of the &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  table&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;a id="sthref2787" name="sthref2787"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:100%;"  &gt;&lt;span style="color: rgb(51, 0, 153);font-family:Arial;font-size:12;"  lang="EN-GB" &gt;Eliminating Migrated  or Chained Rows in a Table&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-GB"&gt;&lt;/span&gt;&lt;/h4&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;You can use the information in the  &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; table  to reduce or eliminate migrated and &lt;a id="sthref2788" name="sthref2788"&gt;&lt;/a&gt;&lt;a id="sthref2789" name="sthref2789"&gt;&lt;/a&gt;chained rows in an existing table. &lt;/span&gt;Use  the following procedure.&lt;/p&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Use the &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; statement  to collect information about migrated and chained rows.&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE TABLE order_hist LIST CHAINED ROWS;&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;Query the output table:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt; SELECT *&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;FROM CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;WHERE TABLE_NAME = 'ORDER_HIST';&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;OWNER_NAME  TABLE_NAME  CLUST... &lt;/span&gt;HEAD_ROWID          TIMESTAMP&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt; &lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;----------  ----------  -----... ------------------  ---------&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; SCOTT       ORDER_HIST       ... AAAAluAAHAAAAA1AAA  04-MAR-96&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;SCOTT       ORDER_HIST       ... AAAAluAAHAAAAA1AAB  04-MAR-96 &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;SCOTT       ORDER_HIST       ... AAAAluAAHAAAAA1AAC  04-MAR-96&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt; &lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;The output lists all rows that are either  migrated or chained.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;If the output table shows that you have many  migrated or chained rows, then you can eliminate migrated rows by continuing  through the following steps:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Create an intermediate table with the same  columns as the existing table to hold the migrated and chained  rows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;CREATE TABLE int_order_hist&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span style="font-size:10;"&gt;   AS SELECT *&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;      FROM order_hist&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt; &lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;      WHERE ROWID IN&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;         (SELECT HEAD_ROWID &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;            FROM CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;            WHERE TABLE_NAME = 'ORDER_HIST');&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Delete the migrated and chained rows from the  existing table:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;DELETE FROM order_hist&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span style="font-size:10;"&gt;   WHERE ROWID IN&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;      (SELECT HEAD_ROWID&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt; &lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;         FROM CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;          WHERE TABLE_NAME = 'ORDER_HIST');&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Insert the rows of the intermediate table  into the existing table:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;INSERT INTO order_hist&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span style="font-size:10;"&gt;   SELECT *&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;   FROM int_order_hist;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt; &lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;Drop the intermediate  table:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;DROP TABLE int_order_history;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Delete the information collected in step 1  from the output table:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;DELETE FROM CHAINED_ROWS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;WHERE TABLE_NAME = 'ORDER_HIST';&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt; &lt;/span&gt; &lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Use the &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ANALYZE &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; statement  again, and query the output table.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span lang="EN-GB"  style="font-size:12;"&gt;Any rows that appear in the output table are chained.  You can eliminate chained rows only by increasing your data block size. It might  not be possible to avoid chaining in all situations. Chaining is often  unavoidable with tables that have a &lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;LONG&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; column or long &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;span lang="EN-GB"  style="font-size:10;"&gt;CHAR&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt; or  &lt;/span&gt;&lt;code&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;VARCHAR2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span lang="EN-GB"&gt;  columns.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-116922291444759333?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/116922291444759333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=116922291444759333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/116922291444759333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/116922291444759333'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2007/01/managing-chained-rows.html' title='Managing Chained Rows'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-115995893838873626</id><published>2006-10-04T12:48:00.000+02:00</published><updated>2006-10-30T12:48:35.566+01:00</updated><title type='text'>Debian Postfix Mysql Courier Virtual Mail Server HowTo</title><content type='html'>&lt;a name="10e12e540f815e7c_Versioni_dei_programmi_utilizzati"&gt;&lt;/a&gt;&lt;h2&gt;&lt;font size="2"&gt;Howto interessante trovato su &lt;a href="http://www.lugpiacenza.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://www.lugpiacenza.org/ &lt;/a&gt; ... testato e funzionante!&lt;/font&gt;&lt;br&gt;&lt;/h2&gt;&lt;h2&gt;Versioni dei programmi utilizzati&lt;/h2&gt; &lt;table cellpadding="5"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;i&gt;apache (apache ssl) 1.3.33-4&lt;/i&gt;&lt;/td&gt;&lt;td&gt; web server &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;mysql 4.0.24-5&lt;/i&gt;&lt;/td&gt;&lt;td&gt;		database di riferimento &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;phpmyadmin 2.6.2-1	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;	interfaccia web di gestione di mysql &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;postfix &lt;a href="http://2.1.5.9" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;2.1.5.9&lt;/a&gt;	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;		server MTA &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;postfix Admin 2.1.0	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;	interfaccia web di gestione di postfix &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;courier-pop 0.47-4	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;	server per il servizio di posta con prot. POP3 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;courier-imap 3.2.6-3	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;	server per il servizio di posta con prot. IMAP4 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;horde2 2.2.8-1	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;		framework php per imp3 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;i&gt;imp3 3.2.6-3 	&lt;/i&gt;&lt;/td&gt;&lt;td&gt;		servizio di webmail &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;ul&gt;&lt;li&gt;Tutti i software utilizzati provengono dai repository debian stable 3.1 salvo postfix admin (&lt;a href="http://high5.net/postfixadmin/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://high5.net/postfixadmin/&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;Verrà creato il server di posta per il dominio di esempio &lt;b&gt;&lt;a href="http://miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;miosito.it&lt;/a&gt;&lt;/b&gt;&lt;a name="10e12e540f815e7c_Installazione_di_apache_mysql-server_phpmyadmin_postfix"&gt; &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Installazione di apache mysql-server phpmyadmin postfi &lt;/h1&gt; &lt;p&gt;Dal terminale di root digitare: &lt;/p&gt;&lt;p&gt;mailserver# apt-get install apache mysql-server phpmyadmin postfix postfix-mysql  &lt;/p&gt;&lt;p&gt;(accettare tutte le dipendenze proposte da apt!) &lt;/p&gt;&lt;p&gt;Non ci sono problemi particolari nel configurare i parametri dei programmi scaricati. Exim4 l'MTA di default della Sarge, viene automaticamente eliminato al caricamento di postfix. Alla fine rilanciare apache (/etc/init.d/apache restart) e puntare localhost nel browser. Aprendo la directory phpmyadmin si lancia il login dell'interfaccia per mysql. Entrare digitando come account root e nessuna password. Eliminare il database test e l'utente root. Creare &lt;b&gt;subito&lt;/b&gt; un nuovo utente amministratore del database (es. Admin). Dare la password a Admin (privilegi ecc..) e provare a rientrare con la nuova password. Noi abbiamo scelto la password arkanoid. &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;a name="10e12e540f815e7c_Configurazione_di_postfix"&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2&gt;Configurazione di postfix&lt;/h2&gt; &lt;p&gt;&lt;b&gt;modifiche a /etc/postfix/main.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Seguendo le indicazioni del  Postfix howto del sito &lt;a href="http://high5.net/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://high5.net&lt;/a&gt; (punto 6) si aggiungono le righe seguenti: &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf &lt;/p&gt;&lt;p&gt;virtual_gid_maps = static:106 &lt;/p&gt;&lt;p&gt;virtual_mailbox_base = /usr/local/virtual &lt;/p&gt;&lt;p&gt;virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf &lt;/p&gt;&lt;p&gt;virtual_mailbox_limit = 51200000 &lt;/p&gt;&lt;p&gt;virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf &lt;/p&gt;&lt;p&gt;virtual_minimum_uid = 104 &lt;/p&gt;&lt;p&gt;virtual_transport = virtual &lt;/p&gt;&lt;p&gt;virtual_uid_maps = static:104 &lt;/p&gt;&lt;p&gt;# Additional for quota support &lt;/p&gt;&lt;p&gt;virtual_create_maildirsize = yes &lt;/p&gt;&lt;p&gt;virtual_mailbox_extended = yes &lt;/p&gt;&lt;p&gt;virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_map$virtual_mailbox_limit_override = yes &lt;/p&gt;&lt;p&gt;virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his dis$virtual_overquota_bounce = yes &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;br&gt; In tutte le righe dove c'è mysql:/usr/local/ecc.. &lt;b&gt;ricordarsi&lt;/b&gt; di mettere il percorso dove saranno salvati i files mysql_virtual_ ecc..(vedi avanti). Per semplicità sono stati messi in /etc/postfix; &lt;/p&gt;&lt;p&gt;&lt;i&gt;virtual_gid_maps = static:106 &lt;/i&gt;  il n° 106 è l'effettivo gid dell'utente postfix (si può prenderlo da /etc/passwd assieme a uid) &lt;/p&gt;&lt;p&gt;&lt;i&gt;virtual_uid_maps = static:104 &lt;/i&gt; vedi sopra &lt;/p&gt;&lt;p&gt;&lt;i&gt;virtual_minimum_uid = 104 &lt;/i&gt; uguale a quello precedente &lt;/p&gt;&lt;p&gt;&lt;br&gt; Rispetto all'originale, alle altre righe del &lt;a href="http://main.cf" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;main.cf&lt;/a&gt; sono state apportate le seguenti modifiche: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;myhostname = indicato il nome del ns. server (mailserver) &lt;/li&gt;&lt;li&gt;eliminata la riga myorigin &lt;/li&gt;&lt;li&gt;mydestination = mailserver, localhost.localdomain, , localhost   aggiunto il nome mailserver &lt;/li&gt;&lt;li&gt;mynetworks = &lt;a href="http://127.0.0.0/8,192.168.1.0/24" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.0/8,192.168.1.0/24&lt;/a&gt; aggiungere le sottoreti che possono accedere al ns. dominio (nel ns. caso la lan interna &lt;a href="http://192.168.1.0/24" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;192.168.1.0/24&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;commentato (#) relayhost &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt; Nella directory /etc/postfix si aggiungono i 5 files copiati dall'howto indicato prima avendo l'avvertenza di mettere in tutti i files al posto della password generica postfix quella scelta per l'utente di database postfix (per comodità presa uguale a quella di root arkanoid) e nella riga hosts sostituire a localhost &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Nel ns. caso risultano: &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/postfix/mysql_virtual_alias_maps.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;user = postfix &lt;/p&gt;&lt;p&gt;password = arkanoid &lt;/p&gt;&lt;p&gt;hosts = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;dbname = postfix &lt;/p&gt;&lt;p&gt;table = alias &lt;/p&gt;&lt;p&gt;select_field = goto &lt;/p&gt;&lt;p&gt;where_field = address &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/postfix/mysql_virtual_domains_maps.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;user = postfix &lt;/p&gt;&lt;p&gt;password = arkanoid &lt;/p&gt;&lt;p&gt;hosts = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;dbname = postfix &lt;/p&gt;&lt;p&gt;table = domain &lt;/p&gt;&lt;p&gt;select_field = description &lt;/p&gt;&lt;p&gt;where_field = domain &lt;/p&gt;&lt;p&gt;#additional_conditions = and backupmx = '0' and active = '1' &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/postfix/mysql_virtual_mailbox_maps.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;user = postfix &lt;/p&gt;&lt;p&gt;password = arkanoid &lt;/p&gt;&lt;p&gt;hosts = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;dbname = postfix &lt;/p&gt;&lt;p&gt;table = mailbox &lt;/p&gt;&lt;p&gt;select_field = maildir &lt;/p&gt;&lt;p&gt;where_field = username &lt;/p&gt;&lt;p&gt;#additional_conditions = and active = '1' &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/postfix/mysql_virtual_mailbox_limit_maps.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;user = postfix &lt;/p&gt;&lt;p&gt;password = arkanoid &lt;/p&gt;&lt;p&gt;hosts = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;dbname = postfix &lt;/p&gt;&lt;p&gt;table = mailbox &lt;/p&gt;&lt;p&gt;select_field = quota &lt;/p&gt;&lt;p&gt;where_field = username &lt;/p&gt;&lt;p&gt;#additional_conditions = and active = '1' &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/postfix/mysql_relay_domains_maps.cf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;user = postfix &lt;/p&gt;&lt;p&gt;password = arkanoid &lt;/p&gt;&lt;p&gt;hosts = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;dbname = postfix &lt;/p&gt;&lt;p&gt;table = domain &lt;/p&gt;&lt;p&gt;select_field = domain &lt;/p&gt;&lt;p&gt;where_field = domain &lt;/p&gt;&lt;p&gt;additional_conditions = and backupmx = '1' &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;Controllare, con il comando postfix check, che non ci siano errori di configurazione; rilanciare postfix dopo ogni modifica di &lt;a href="http://main.cf" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;main.cf&lt;/a&gt; con /etc/init.d/postfix restart &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;h2&gt;Configurazione di mysql&lt;/h2&gt; &lt;p&gt;&lt;b&gt;modifiche al file /etc/mysql/my.cnf&lt;/b&gt; &lt;/p&gt;&lt;p&gt;bind-address = &lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt; &lt;/p&gt;&lt;p&gt;[...] &lt;/p&gt;&lt;p&gt;nice = -5 &lt;/p&gt;&lt;p&gt;Rilanciare per verifica il database con /etc/init.d/mysql restart &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Creazione_della_directory_di_posta"&gt;&lt;/a&gt;&lt;h2&gt;Creazione della directory di posta&lt;/h2&gt; &lt;p&gt;creare la directory dove saranno archiviate le mail di tutti gli utenti: &lt;/p&gt;&lt;p&gt;/usr/local/virtual e rendere proprietari (chown) l'utente e il gruppo postfix con i privilegi indicati (chmod): &lt;/p&gt;&lt;p&gt;mailserver# mkdir /usr/local/virtual &lt;/p&gt;&lt;p&gt;mailserver# chown -R postfix:postfix /usr/local/virtual &lt;/p&gt;&lt;p&gt;mailserver# chmod -R 771 /usr/local/virtual &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Configurazione_file_di_sistema"&gt;&lt;/a&gt;&lt;h2&gt;Configurazione file di sistema&lt;/h2&gt; &lt;p&gt;Configurare /etc/hosts e /var/spool/postfix/etc/hosts (in modo che siano identici): &lt;/p&gt;&lt;p&gt;&lt;a href="http://127.0.0.1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;127.0.0.1&lt;/a&gt;	localhost	localhost &lt;/p&gt;&lt;p&gt;&lt;a href="http://192.168.1.100" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;192.168.1.100&lt;/a&gt;	mailserver &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Installazione_di_postfixadmin"&gt;&lt;/a&gt;&lt;h1&gt;Installazione di postfixadmin&lt;/h1&gt; &lt;p&gt;Sempre dal sito &lt;a href="http://high5.net/postfixadmin/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://high5.net/postfixadmin/&lt;/a&gt; scaricare l'archivio postfixadmin-*.tgz; &lt;/p&gt;&lt;p&gt;Creare la directory dove si vuole ospitare il gestore web di postfix. Nel ns. caso abbiamo creato la directory mail sotto /var/www: &lt;/p&gt;&lt;p&gt;mailserver# mkdir /var/www/mail   &lt;/p&gt;&lt;p&gt;Copiare in /var/www/mail i files estratti dall'archivio scaricato (ad es.): &lt;/p&gt;&lt;p&gt;mailserver:/home/user# tar -zxvf postfixadmin-2.1.0.tgz &lt;/p&gt;&lt;p&gt;mailserver:/home/user# ln -s postfixadmin-2.1.0 mail &lt;/p&gt;&lt;p&gt;Creare il database di supporto a Postfixadmin. Si può fare in due modi: &lt;/p&gt;&lt;p&gt;copiare il contenuto del file /var/www/mail/DATABASE_MYSQL.TXT in una finestra di query di phpmyadmin ed eseguirla; &lt;/p&gt;&lt;p&gt;oppure da riga di comando, dalla directory /var/www/mail lanciare il comando: &lt;/p&gt;&lt;p&gt;/var/www/mail# mysql -u Admin -p &amp;lt; DATABASE_MYSQL.TXT &lt;/p&gt;&lt;p&gt;Scrivere la password richiesta ed uscire da mysql con \q &lt;/p&gt;&lt;p&gt;In entrambi i casi viene creato un nuovo database di nome postfix con nuovi user postfix e postfixadmin.  &lt;/p&gt;&lt;p&gt;Entrare con phpmyadmin nel database e modificare le due password dei due utenti (noi, per semplicità, le abbiamo prese uguali a quella di Admin di mysql cioè arkanoid). &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Configurazione_di_postfixadmin"&gt;&lt;/a&gt;&lt;h2&gt;Configurazione di postfixadmin&lt;/h2&gt; &lt;p&gt;Configurare ora il file config.inc.php che dapprima va creato da quello originale config.inc.php.sample: &lt;/p&gt;&lt;p&gt;/var/www/mail# mv config.inc.php.sample config.inc.php &lt;/p&gt;&lt;p&gt;Le modifiche riguardano: &lt;/p&gt;&lt;p&gt;$CONF['default_language'] = 'it';    		'it' al posto di 'en' per la lingua &lt;/p&gt;&lt;p&gt;$CONF['database_password'] = 'arkanoid';	tra apici la password di postfixadmin &lt;/p&gt;&lt;p&gt;$CONF['admin_email'] = '&lt;a href="mailto:postmaster@miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;postmaster@miosito.it&lt;/a&gt;'; il gestore della posta del ns.dominio  &lt;/p&gt;&lt;p&gt;Altre modifiche (successive e meno importanti per ora) per il funzionamento iniziale riguardano la modifiche dei link a &lt;a href="http://miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;miosito.it&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Per l'abilitazione e la dimensione delle quote nel paragrafo Quota mettere: &lt;/p&gt;&lt;p&gt;$CONF['quota'] = 'YES' &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Creazione_ed_amministrazione_del_dominio_virtuale"&gt;&lt;/a&gt;&lt;h2&gt;Creazione ed amministrazione del dominio virtuale&lt;/h2&gt; &lt;p&gt;Ora possiamo creare il nuovo dominio virtuale ed associargli il gestore (ad es. &lt;a href="mailto:postmaster@miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;postmaster@miosito.it&lt;/a&gt;) &lt;/p&gt;&lt;p&gt;Dal browser puntare la directory mail (&lt;a href="http://localhost/mail" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://localhost/mail&lt;/a&gt;). Si apre una schermata di controllo che verifica se postfixadmin è configurato correttamente. Da un link a fondo pagina si entra nella schermata iniziale di configurazione dopo aver digitato account iniziale e password pari ad admin. &lt;/p&gt;&lt;p&gt;Se non si entra, probabilmente il percorso nel file nascosto .htaccess in mail/admin è scorretto. Editare il file e nella prima riga mettere tutto il percorso (var/www/mail/admin) &lt;/p&gt;&lt;p&gt;Creare il nuovo dominio (&lt;a href="http://miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;miosito.it&lt;/a&gt;) e l'amministratore (&lt;a href="mailto:postmaster@miosito.it" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;postmaster@miosito.it&lt;/a&gt;) ed uscire (meglio non creare nessuna casella di posta). Alla fine spostare la directory di amministrazione in un posto &amp;quot;sicuro&amp;quot; &lt;/p&gt;&lt;p&gt;Se tutto va a buon fine fine cancellare (all'inizio meglio rinominare) il file setup.php per non entrare più in questa schermata. Dal browser puntare ancora mail; si apre la schermata di login definitiva dalla quale è possibile gestire completamente il server di posta (creare nuovi domini, nuove caselle di posta nuovi amministratori, modificarne le caratteristiche ecc...) Creare la casella di posta degli utenti desiderati (anche quella del postmaster) ed uscire; se la grafica presenta in italiano delle sovrapposizioni leggere il forum nel sito di postfixadmin per le modifiche da fare al file stylesheet.css. &lt;/p&gt;&lt;p&gt;Controllare che in /usr/local/virtual siano state create le directory associati alle caselle di posta create; entrare nelle directory e verificare con un editor la presenza dei messaggi di posta. Eventualmente controllare la presenza di errori o segnalazioni nei file /var/log/mail.log e /var/log/mail.err; per mysql invece il file di log ora è syslog. Per vedere le ultime 10 righe dei files usare il comando tail nome file. &lt;/p&gt;&lt;p&gt;Ad ogni modifica ai files di configurazione far ripartire postfix e mysql. Controllare la presenza di posta in coda con il comando mailq. &lt;/p&gt;&lt;p&gt;Per controllare le porte aperte si può installare nmap con apt-get install nmap e digitare: &lt;/p&gt;&lt;p&gt;mailserver# nmap localhost &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Installazione_e_configurazione_di_courier-imap_e_courier-pop"&gt;&lt;/a&gt;&lt;h1&gt;Installazione e configurazione di courier-imap e courier-pop&lt;/h1&gt; &lt;p&gt;mailserver# apt-get install courier-imap courier-pop courier-auhtdaemon courier-authmysql &lt;/p&gt;&lt;p&gt;Con un editor modificare i due files /etc/courier/authdaemonrc e /etc/courier/authmysqlrc: &lt;/p&gt;&lt;p&gt;Fare molta attenzione a &lt;b&gt;non inserire spazi superflui&lt;/b&gt; in questi due files!!! &lt;b&gt;usare solo TAB&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/courier/authmysqlrc&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Le modifiche da fare in questo file sono: &lt;/p&gt; &lt;table cellpadding="5"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;MYSQL_USERNAME	&lt;/td&gt;&lt;td&gt;postfix &lt;/td&gt;&lt;td&gt;         nome dell'utente &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_PASSWORD	&lt;/td&gt;&lt;td&gt;arkanoid &lt;/td&gt;&lt;td&gt;         password &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_DATABASE	&lt;/td&gt;&lt;td&gt;postfix	&lt;/td&gt;&lt;td&gt;    nome del database &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_USER_TABLE &lt;/td&gt;&lt;td&gt;mailbox &lt;/td&gt;&lt;td&gt; &lt;br&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_CRYPT_PWFIELD &lt;/td&gt;&lt;td&gt;password	&lt;/td&gt;&lt;td&gt;    al posto di crypt &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_UID_FIELD &lt;/td&gt;&lt;td&gt;'104'	&lt;/td&gt;&lt;td&gt;    tra apici uid di postfix &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_GID_FIELD &lt;/td&gt;&lt;td&gt;'106'	&lt;/td&gt;&lt;td&gt;    tra apici gid di postfix &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_LOGIN_FIELD &lt;/td&gt;&lt;td&gt;username  &lt;/td&gt;&lt;td&gt; &lt;br&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;MYSQL_HOME_FIELD &lt;/td&gt;&lt;td&gt; '/usr/local/virtual' &lt;/td&gt;&lt;td&gt; &lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;togliere il cancelletto davanti a MYSQL_MAILDIR_FIELD    maildir &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/courier/authdaemonrc&lt;/b&gt; &lt;/p&gt;&lt;p&gt;In questo file è stata modificato solo la riga: &lt;/p&gt;&lt;p&gt;authmodule list=&amp;quot;authmysql&amp;quot;  &lt;/p&gt;&lt;p&gt;Dopo queste modifiche rilanciare postfix e i server courier con i comandi: &lt;/p&gt;&lt;p&gt;maildir# /etc/init.d/postfix restart &lt;/p&gt;&lt;p&gt;maildir# /etc/init.d/courier-imap restart &lt;/p&gt;&lt;p&gt;maildir# /etc/init.d/courier-pop restart 		 &lt;/p&gt;&lt;p&gt;maildir# /etc/init.d/courier-authdaemon restart &lt;/p&gt;&lt;p&gt;Configurare un client di posta (ad esempio Thunderbird) per leggere la posta secondo il protocollo imap e pop e controllare nel secondo caso che la posta venga eliminata da /usr/local/virtual. &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Installazione_e_configurazione_del_servizio_di_webmail"&gt;&lt;/a&gt;&lt;h1&gt;Installazione e configurazione del servizio di webmail&lt;/h1&gt; &lt;p&gt;Installare il servizio di webmail con apt-get install imp3 &lt;/p&gt;&lt;p&gt;Affinché sia possibile creare cartelle &amp;quot;figlie&amp;quot; di INBOX (quelle di primo livello non vengono create) è necessario aggiungere al file di configurazione /etc/imp3/servers.php le seguenti righe: &lt;/p&gt;&lt;p&gt;&lt;b&gt;/etc/imp3/servers.php&lt;/b&gt; &lt;/p&gt;&lt;p&gt;$servers['imap'] = array( &lt;/p&gt;&lt;p&gt;'name' =&amp;gt; '', &lt;/p&gt;&lt;p&gt;'server' =&amp;gt; 'localhost', &lt;/p&gt;&lt;p&gt;'protocol' =&amp;gt; 'imap/notls', &lt;/p&gt;&lt;p&gt;'port' =&amp;gt; 143, &lt;/p&gt;&lt;p&gt;'folders' =&amp;gt; '', &lt;/p&gt;&lt;p&gt;'namespace' =&amp;gt; 'INBOX.', &lt;/p&gt;&lt;p&gt;'maildomain' =&amp;gt; '', &lt;/p&gt;&lt;p&gt;'smtphost' =&amp;gt; 'localhost', &lt;/p&gt;&lt;p&gt;'realm' =&amp;gt; '', &lt;/p&gt;&lt;p&gt;'preferred' =&amp;gt; '' &lt;/p&gt;&lt;p&gt;); &lt;/p&gt;&lt;p&gt;Alla fine rilanciare apache con /etc/init.d/apache restart e provare il servizio di webmail collegandosi all'host con &lt;a href="http://mailserver.miosito.it/horde2/imp" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://mailserver.miosito.it/horde2/imp &lt;/a&gt; &lt;/p&gt;&lt;p&gt;Successivamente si può impostare per imp la lingua (usare dpkg-reconfigure locales se non funziona in italiano), il link diretto a imp ecc... &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Supporto_delle_quote"&gt;&lt;/a&gt;&lt;h1&gt;Supporto delle quote&lt;/h1&gt; &lt;p&gt;Per avere il supporto delle quote si può procedere come indicato nel sito &lt;a href="http://www.brunny.com/content/view/9/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://www.brunny.com/content/view/9/ &lt;/a&gt;. Queste le operazioni da effettuare in sequenza: &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Applicare_la_patch_per_quota_VDA"&gt;&lt;/a&gt;&lt;h2&gt;Applicare la patch per quota VDA&lt;/h2&gt; &lt;p&gt;E' necessario scaricare e applicare la patch per quota VDA da  &lt;a href="http://web.onda.com.br/nadal/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://web.onda.com.br/nadal/ &lt;/a&gt;. Un sistema molto comodo per farlo è quello di usare uno degli script che si trovano nelle faq di postfixadmin. Quello che abbiamo usato noi lo riportiamo qui: &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;#!/bin/sh &lt;/p&gt;&lt;p&gt;# THIS IS GPL SO ADJUST WHAT YOU LIKE &lt;/p&gt;&lt;p&gt;# no copyright &lt;/p&gt;&lt;p&gt;# &lt;/p&gt;&lt;p&gt;# Created and tested on Debian Sarge ( Testing ) 3.1 &lt;/p&gt;&lt;p&gt;# This file wil give you the option to easy update postfix &lt;/p&gt;&lt;p&gt;# with VDA support. &lt;/p&gt;&lt;p&gt;# It wil download the VDA Patch and the Postfix Source &lt;/p&gt;&lt;p&gt;# Patches it and build it and install's it. &lt;/p&gt;&lt;p&gt;# &lt;/p&gt;&lt;p&gt;# If you can improve this please send a copy to &lt;/p&gt;&lt;p&gt;# &lt;a href="mailto:thctlo@hotmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;thctlo@hotmail.com&lt;/a&gt; thanx and enjoy. &lt;/p&gt;&lt;p&gt;# i could'nt figure out how to add +vda to the postfix version &lt;/p&gt;&lt;p&gt;# so it would be easier to update without holding selections &lt;/p&gt;&lt;p&gt;# &lt;/p&gt;&lt;p&gt;# use yes of no &lt;/p&gt;&lt;p&gt;# Install the deb files created &lt;/p&gt;&lt;p&gt;install=yes &lt;/p&gt;&lt;p&gt;# Build the deb files &lt;/p&gt;&lt;p&gt;builddeb=yes &lt;/p&gt;&lt;p&gt;# Source directories &lt;/p&gt;&lt;p&gt;# !!! DO NOT ADD TO SRCDIR /usr/src ALWAYS PUT SOME DIRECTORY BEHIND IT &lt;/p&gt;&lt;p&gt;# YOU WERE WARNED, IF YOU DO PLEASE REMARK LINE &lt;/p&gt;&lt;p&gt;# THE LINE &amp;quot; rm -r -f $SRCDIR &amp;quot; &lt;/p&gt;&lt;p&gt;SRCDIR=/usr/src/sources &lt;/p&gt;&lt;p&gt;DEBDIR=/usr/src/deb-files &lt;/p&gt;&lt;p&gt;# no logging /dev/null or logging /$SRCDIR/postfix-vda.log &lt;/p&gt;&lt;p&gt;whatoutput=$SRCDIR/postfix-vda.log &lt;/p&gt;&lt;p&gt;&amp;lt;nowiky&amp;gt;# what do you want to install of postfix&amp;lt;/nowiki&amp;gt; &lt;/p&gt;&lt;p&gt;&amp;lt;noviky&amp;gt;# individual packages install&amp;nbsp;?&amp;lt;/nowiki&amp;gt; &lt;/p&gt;&lt;p&gt;postfix=yes &lt;/p&gt;&lt;p&gt;postfixtls=yes &lt;/p&gt;&lt;p&gt;postfixmysql=yes &lt;/p&gt;&lt;p&gt;postfixpgsql=no &lt;/p&gt;&lt;p&gt;postfixpcre=yes &lt;/p&gt;&lt;p&gt;postfixldap=no &lt;/p&gt;&lt;p&gt;postfixdoc=yes &lt;/p&gt;&lt;p&gt;postfixdev=no &lt;/p&gt;&lt;p&gt;# Source directories &lt;/p&gt;&lt;p&gt;SRCDIR=/usr/src/sources &lt;/p&gt;&lt;p&gt;DEBDIR=/usr/src/deb-files &lt;/p&gt;&lt;p&gt;&amp;lt;nowiki# date in rfc-2822&amp;lt;/nowiki&amp;gt; &lt;/p&gt;&lt;p&gt;THEDATE=`which date` &lt;/p&gt;&lt;p&gt;THETIME=`$THEDATE -R` &lt;/p&gt;&lt;p&gt;POSTFIXVER=`apt-cache show postfix | grep Version` &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;This is used for virtual quota's with postfix&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;more info on &lt;a href="http://web.onda.com.br/nada" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://web.onda.com.br/nada&lt;/a&gt;&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;Your options for postfix are:&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;$POSTFIXVER&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;please supply the version of postfix, example: 2.1.5&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;and the sub version, example: 4 &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;the source you download in this example version is 2.1.5-4&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;A=&amp;quot;&amp;quot; &lt;/p&gt;&lt;p&gt;while [ &amp;quot;$A&amp;quot; == &amp;quot;&amp;quot; ] &lt;/p&gt;&lt;p&gt;do echo &amp;quot;Enter the version of postfix installing (example 2.1.5) and press RETURN&amp;quot; &lt;/p&gt;&lt;p&gt;read A &lt;/p&gt;&lt;p&gt;done &lt;/p&gt;&lt;p&gt;echo &amp;quot;So your postfix version is: $A&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;B=&amp;quot;&amp;quot; &lt;/p&gt;&lt;p&gt;while [ &amp;quot;$B&amp;quot; == &amp;quot;&amp;quot; ] &lt;/p&gt;&lt;p&gt;do &lt;/p&gt;&lt;p&gt;echo &amp;quot;Please enter the sub version of postfix installing (example &amp;quot;4&amp;quot;) and press RETURN&amp;quot; &lt;/p&gt;&lt;p&gt;read B &lt;/p&gt;&lt;p&gt;done &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;So the sub version is: $B, this will result in postfix-$A-$B&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;if incorrrect no source will be downloaded en no patch wil be downloaded.&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;WGETSET=`which wget` &lt;/p&gt;&lt;p&gt;if [ $WGETSET == &amp;quot;&amp;quot; ]; then &lt;/p&gt;&lt;p&gt;echo &amp;quot;wget is not installed, installing now&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;updating package tree&amp;quot; &lt;/p&gt;&lt;p&gt;apt-get update &amp;gt; /dev/null &lt;/p&gt;&lt;p&gt;echo &amp;quot;installing wget..&amp;quot; &lt;/p&gt;&lt;p&gt;apt-get -y install wget &amp;gt; /dev/null &lt;/p&gt;&lt;p&gt;echo &amp;quot;wget installed&amp;quot; &lt;/p&gt;&lt;p&gt;updatedb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;WGETSET=`which wget` &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;echo &amp;quot;removing old sources&amp;quot; &lt;/p&gt;&lt;p&gt;rm -r -f $SRCDIR &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;This wil download postfix latests source from the debian tree&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &lt;/p&gt;&lt;p&gt;mkdir $SRCDIR &lt;/p&gt;&lt;p&gt;cd $SRCDIR &lt;/p&gt;&lt;p&gt;echo &amp;quot;getting sources .. postfix VDA (&lt;a href="http://web.onda.com.br/nada1" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://web.onda.com.br/nada1&lt;/a&gt;&amp;quot; &lt;/p&gt;&lt;p&gt;$WGETSET &lt;a href="http://web.onda.com.br/nadal/postfix/VDA/postfix-$A-trash.patch.gz" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://web.onda.com.br/nadal/postfix/VDA/postfix-$A-trash.patch.gz &lt;/a&gt; &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;getting sources .. postfix debian source&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;please wait this can take some minutes&amp;quot; &lt;/p&gt;&lt;p&gt;apt-get source postfix &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;checking needed sources for compiling&amp;quot; &lt;/p&gt;&lt;p&gt;apt-get -y build-dep postfix &amp;gt;&amp;gt; $whatoutput echo &amp;quot;unpacking sources&amp;quot; &lt;/p&gt;&lt;p&gt;gunzip postfix_$A.orig.tar.gz &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;tar -xf postfix_$A.orig.tar &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;patching the postfix source with VDA support&amp;quot; &lt;/p&gt;&lt;p&gt;gunzip postfix-2.1.5-trash.patch.gz &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;cd postfix-$A &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;patch -p1 &amp;lt; ../postfix-$A-trash.patch &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;Postfix source patched with VDA (virtual quota support)&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;Changing $SRCDIR/postfix-$A/debian/changelog&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;changing changelog of postfix add VDA support&amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix ($A-$B+vda) unstable; urgency=low&amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot; * Added VDA support to postfix&amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot; -- THC TLO&amp;lt;&lt;a href="mailto:thctlo@hotmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;thctlo@hotmail.com&lt;/a&gt;&amp;gt;&amp;gt; $THETIME&amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; $SRCDIR/postfix-$A/debian/changelog &lt;/p&gt;&lt;p&gt;if [ $builddeb == yes ]; then &lt;/p&gt;&lt;p&gt;echo &amp;quot;creating deb files&amp;quot; &lt;/p&gt;&lt;p&gt;dpkg-buildpackage -rfakeroot -uc -b &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;move deb files to $SRCDIR/deb-files&amp;quot; &lt;/p&gt;&lt;p&gt;mkdir $DEBDIR &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;mkdir $DEBDIR/backup &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;mv $DEBDIR/*.deb $DEBDIR/backup &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;mv $SRCDIR/*.deb $DEBDIR &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;the deb files are in $DEBDIR&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;the previous version is in $DEBDIR/backup&amp;quot; &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;### Install section &lt;/p&gt;&lt;p&gt;if [ $install == yes ]; then &lt;/p&gt;&lt;p&gt;echo &amp;quot;Installing selection and setting them to hold&amp;quot; &lt;/p&gt;&lt;p&gt;echo &amp;quot;so the wont be upgraded unwanted.&amp;quot; &lt;/p&gt;&lt;p&gt;cd $DEBDIR &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;BUILDVER=$A-$B &lt;/p&gt;&lt;p&gt;if [ $postfix == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixdev == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-dev_$BUILDVER\_all.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-dev hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixdoc == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-doc_$BUILDVER\_all.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-doc hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixpcre == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-pcre_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-pcre hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixmysql == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-mysql_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-mysql hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixpgsql == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-pgsql_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-pgsql hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixtls == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-tls_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-tls hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;if [ $postfixldap == yes ]; then &lt;/p&gt;&lt;p&gt;dpkg -i postfix-ldap_$BUILDVER\_i386.deb &amp;gt;&amp;gt; $whatoutput &lt;/p&gt;&lt;p&gt;echo &amp;quot;postfix-ldap hold&amp;quot; | dpkg --set-selections &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;echo &amp;quot;installing done&amp;quot; &lt;/p&gt;&lt;p&gt;fi &lt;/p&gt;&lt;p&gt;exit 0 &lt;/p&gt;&lt;p&gt;--- &lt;/p&gt;&lt;p&gt;Lo script funziona correttamente solo se è stato installato fakeroot (con apt-get install fakeroot), altrimenti non viene generato il pacchetto .deb. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Esecuzione dello script:&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Viene richiesto solo il n° di versione prima (ad es. 2.1.5) e di subversion dopo (es. 9), dopo lo script prosegue in modo automatico: &lt;/p&gt;&lt;p&gt;scarica automaticamente prima la patch VDA dal sito citato, poi i sorgenti di Postfix dal mirror Debian; crea una nuova directory sources in /usr/src/ dove aggiunge la patch al sorgente originale; genera i pacchetti .deb in /usr/src/deb-files e li installa (senza cambiare i files di configurazione di postfix). Permette anche l'aggiornamento di Postfix vers. 2.2 (in tal caso togliere i ... dalla riga relativa dello script) &lt;/p&gt;&lt;p&gt;Si può usare un altro script (che non abbiamo provato), più articolato, che dovrebbe funzionare anche per le versioni di Postfix 2.2 che salva anche i files sorgenti prima di combinarli insieme. Si può trovare nello stesso forum: &lt;a href="http://forums.high5.net/index.php?showtopic=2615" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://forums.high5.net/index.php?showtopic=2615 &lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br&gt; &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Modifica_files_di_configurazione"&gt;&lt;/a&gt;&lt;h2&gt;Modifica files di configurazione&lt;/h2&gt; &lt;p&gt;Se si è installato postfix come indicato prima, mysql ha già la tabella con la quota disco per utente, (configurabile dall'amministratore del dominio virtuale); bisogna ricordarsi di abilitarla: &lt;/p&gt;&lt;p&gt;a - togliendo # davanti alla riga del file /var/www/mail/config.inc.php: &lt;/p&gt;&lt;p&gt;$CONF['quota'] = 'YES'; &lt;/p&gt;&lt;p&gt;&lt;br&gt; b - controllando nel file di configurazione di courier /etc/courier/authmysqlrc: &lt;/p&gt; &lt;table cellpadding="5"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;MYSQL_QUOTA_FIELD &lt;/td&gt;&lt;td&gt; quota &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;La guida indicata nel sito &lt;a href="http://www.brunny.com/content/view/9/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://www.brunny.com/content/view/9/&lt;/a&gt; dice di scrivere, nel file di configurazione /etc/courier/imapd: &lt;/p&gt;&lt;p&gt;IMAP_CAPABILITY=&amp;quot;IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA&amp;quot; &lt;/p&gt;&lt;p&gt;noi abbiamo trovato in questo file il parametro analogo: &lt;/p&gt;&lt;p&gt;IMAP_CAPABILITY=&amp;quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE&amp;quot; &lt;/p&gt;&lt;p&gt;che funziona perfettamente senza fare nessuna modifica; &lt;/p&gt;&lt;p&gt;Tutti gli altri punti indicati nella guida sono già stati effettuati prima con l'installazione di postfixadmin e la modifica relativa di /etc/postfix/main.cf (al solito rilanciare sia postfix che courier-imap con /etc/init.d/postfix restart ecc..) &lt;/p&gt;&lt;p&gt;Il funzionamento complessivo è il seguente: &lt;/p&gt;&lt;p&gt;il postmaster attribuisce ad un utente una quota su disco per la casella di posta che viene memorizzata nel database mysql; al superamento di questo limite, chi invia una mail a questo utente viene avvisato che non è possibile consegnarla fino che (l'utente o il postmaster) non elimina parte della posta memorizzata. Il proprietario della casella non viene avvisato direttamente. &lt;/p&gt;&lt;p&gt;Nel file di configurazione /etc/postfix/main.cf è possibile anche definire la dimensione massima (posta+allegato) valida per ogni utente inserendo (ad es.): &lt;/p&gt;&lt;p&gt;&lt;br&gt; message_size_limit = 8240000 &lt;/p&gt;&lt;p&gt;8240000 sta per circa 8 Mb di spazio &lt;/p&gt;&lt;p&gt;Questo parametro deve sempre essere inferiore di: &lt;/p&gt;&lt;p&gt;virtual_mailbox_limit = 51200000 &lt;/p&gt;&lt;p&gt;(anche se poi con le quote virtuali questo numero non è significativo) &lt;/p&gt;&lt;p&gt;&lt;br&gt; Riferimenti: &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.inter7.com/courierimap/README.maildirquota.html" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://www.inter7.com/courierimap/README.maildirquota.html &lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://web.onda.com.br/nadal/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://web.onda.com.br/nadal/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.oav.net/vda/VIRTUAL_README.txt" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://www.oav.net/vda/VIRTUAL_README.txt&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br&gt; &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Autenticazione_SASL_e_posta_criptata_con_TLS"&gt;&lt;/a&gt;&lt;h1&gt;Autenticazione SASL e posta criptata con TLS&lt;/h1&gt; &lt;p&gt;SASL è un metodo di autenticazione che permette ad un utente del dominio fuori dal segmento di rete &amp;quot;sicuro&amp;quot; (mynetwork) dichiarato in &lt;a href="http://main.cf" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;main.cf&lt;/a&gt; di utilizzare comunque postfix come smtp. E' possibile anche usare SASL per autenticarsi su un relayHost. &lt;/p&gt;&lt;p&gt;TLS permette la criptazione del traffico dal client di posta al mail server e viceversa  &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Autenticazione_SASL_di_utenti_di_un_ns._dominio_virtuale"&gt;&lt;/a&gt;&lt;h2&gt;Autenticazione SASL di utenti di un ns. dominio virtuale&lt;/h2&gt; &lt;p&gt;1 - Bisogna controllare l'esistenza o installare i seguenti pacchetti: &lt;/p&gt;&lt;p&gt;libsasl2 (attualmente la vers. 2.1.19-1.5), libsasl2-dev, libsasl2-modules, libsasl2-modules-mysql &lt;/p&gt;&lt;p&gt;2 - creare il file /etc/postfix/sasl/smtpd.conf: &lt;/p&gt;&lt;p&gt;pwcheck_method: authdaemond &lt;/p&gt;&lt;p&gt;log_level: 3 &lt;/p&gt;&lt;p&gt;mech_list: PLAIN LOGIN &lt;/p&gt;&lt;p&gt;authdaemond_path:/var/run/courier/authdaemon/socket &lt;/p&gt;&lt;p&gt;in questo modo si sceglie di autenticare la password utilizzando courier; la password è memorizzata nel database mysql in forma criptata ma il meccanismo da scegliere nel client di posta è PLAIN TEXT (alcuni client supportono solo questo...). Sono possibili altri modi (auxprop saslauhtd) per controllare la password ma non funzionano con la ns. installazione (abbiamo provato con auxprop, bisogna installare anche sasl2-bin ma poi era necessario inserire la password criptata, presa da mysql, oppure patchare sasl partendo dai sorgenti...vedi &lt;a href="http://brunny.com/content/view/12/50/" rel="nofollow" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://brunny.com/content/view/12/50/ &lt;/a&gt;) &lt;/p&gt;&lt;p&gt;3 - Controllare che smtpd non giri in chroot: &lt;/p&gt;&lt;p&gt;Controllare che /etc/postfix/master.cf abbia n nella colonna chroot (vedi sotto) &lt;/p&gt; ================================================= &lt;table cellpadding="5"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;#&lt;/td&gt;&lt;td&gt; service&lt;/td&gt;&lt;td&gt; type&lt;/td&gt;&lt;td&gt;  private&lt;/td&gt;&lt;td&gt; unpriv&lt;/td&gt;&lt;td&gt;  chroot&lt;/td&gt;&lt;td&gt;  wakeup&lt;/td&gt;&lt;td&gt;  maxproc&lt;/td&gt;&lt;td&gt; command&lt;/td&gt;&lt;td&gt; + args &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;#&lt;/td&gt;&lt;td&gt;        &lt;br&gt;&lt;/td&gt;&lt;td&gt;     &lt;br&gt;&lt;/td&gt;&lt;td&gt;  (yes)&lt;/td&gt;&lt;td&gt;   (yes)&lt;/td&gt;&lt;td&gt;   (yes)&lt;/td&gt;&lt;td&gt;   (never)&lt;/td&gt;&lt;td&gt; (100)&lt;/td&gt;&lt;td&gt; &lt;br&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;smtp&lt;/td&gt;&lt;td&gt;     &lt;br&gt;&lt;/td&gt;&lt;td&gt; inet&lt;/td&gt;&lt;td&gt;  n&lt;/td&gt;&lt;td&gt;       - &lt;/td&gt;&lt;td&gt;      n  &lt;/td&gt;&lt;td&gt;     - &lt;/td&gt;&lt;td&gt;      - &lt;/td&gt;&lt;td&gt;      smtpd&lt;/td&gt;&lt;td&gt; &lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;4 - L'user postfix deve far parte del gruppo daemon &lt;/p&gt;&lt;p&gt;mailserver# adduser postfix daemon &lt;/p&gt;&lt;p&gt;5 - Inserire le seguenti righe in /etc/postfix/main.cf: &lt;/p&gt;&lt;p&gt;&lt;br&gt; broken_sasl_auth_clients = yes &lt;/p&gt;&lt;p&gt;#smtpd_recipient_restrictions = &lt;/p&gt;&lt;p&gt;#  permit_mynetworks &lt;/p&gt;&lt;p&gt;smtpd_sasl_auth_enable = yes &lt;/p&gt;&lt;p&gt;smtpd_sasl_local_domain = $myhostname &lt;/p&gt;&lt;p&gt;smtpd_sasl_security_options = noanonymous &lt;/p&gt;&lt;p&gt;le righe con # (per ora non abilitate) sono in verità restrizioni sull'uso del smtpd (antispam)  &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Usare_SASL_per_autenticare_il_ns._MTA_su_un_RelayHost"&gt;&lt;/a&gt;&lt;h2&gt;Usare SASL per autenticare il ns. MTA su un RelayHost &lt;/h2&gt; &lt;p&gt;apt-get install postfix-tls  libsasl2 sasl2-bin libsasl2-modules &lt;/p&gt;&lt;p&gt;edit &lt;a href="http://main.cf" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;main.cf&lt;/a&gt; relayhost = [smpt.foo.coo] &lt;/p&gt;&lt;p&gt;smtp_sasl_auth_enable = yes &lt;/p&gt;&lt;p&gt;smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd &lt;/p&gt;&lt;p&gt;smtp_sasl_security_options = &lt;/p&gt;&lt;p&gt;&lt;br&gt; edit /etc/postfix/sasl_passwd &lt;/p&gt;&lt;p&gt;[smpt.foo.coo]          indirizzo@miodominio.com:password &lt;/p&gt;&lt;p&gt;&lt;br&gt; postmap sasl_passwd postfix reload &lt;/p&gt; &lt;div style="float: right; margin-left: 5px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;a name="10e12e540f815e7c_Posta_criptata_con_imaps_e_pops"&gt;&lt;/a&gt;&lt;h2&gt;Posta criptata con imaps e pops&lt;/h2&gt; &lt;p&gt;Come già detto prima si può usare TLS (un'evoluzione di SSL) che cripta il traffico tra il server di posta e l'email client per trasmettere via postfix e ricevere via courier. TSL non è una criptazione tipo client, per questo tipo cercare in GNuPG. &lt;/p&gt;&lt;p&gt;E' necessario creare un certificato per postfix e uno per courier. In postfix si possono usare questi comandi per creare un certificato con validità di tre anni (supponendo di aver già scaricato postfix-tls): &lt;/p&gt;&lt;p&gt;&lt;br&gt; 1 - nella directory /etc/postfix creare il certificato per postfix (questo vale circa 999 giorni, circa tre anni) &lt;/p&gt;&lt;p&gt;mail# openssl req -new -outform PEM -out postfix.cert -newkey rsa:2048 -nodes -keyout \ postfix.key -keyform PEM -days 999 -x509 &lt;/p&gt;&lt;p&gt;verranno chieste informazioni quali la nazione (per noi IT), la provincia ecc.. per caratterizzare il certificato che il client dovrà accettare &lt;/p&gt;&lt;p&gt;&lt;br&gt; 2 - aggiungere queste righe a /etc/postfix/main.cf &lt;/p&gt;&lt;p&gt;smtpd_use_tls = yes &lt;/p&gt;&lt;p&gt;smtpd_tls_cert_file = /etc/postfix/postfix.cert  &lt;/p&gt;&lt;p&gt;smtpd_tls_key_file = /etc/postfix/postfix.key  &lt;/p&gt;&lt;p&gt;smtpd_data_restrictions = reject_unauth_pipelining &lt;/p&gt;&lt;p&gt;&lt;br&gt; 3 - installare courier-imap-ssl e courier-pop-ssl &lt;/p&gt;&lt;p&gt;apt-get install courier-imap-ssl courier-pop-ssl &lt;/p&gt;&lt;p&gt;dopo l'installazione verrà creato automaticamente un certificato che si può accettare, &lt;/p&gt;&lt;p&gt;noi ne abbiamo generato un altro con il comando: &lt;/p&gt;&lt;p&gt;openssl req -x509 -newkey rsa:1024 -keyout imapd.pem -out imapd.pem -nodes -days 999 &lt;/p&gt;&lt;p&gt;dando le informazioni come sopra per imaps e: &lt;/p&gt;&lt;p&gt;openssl req -x509 -newkey rsa:1024 -keyout pop3d.pem -out pop3d.pem -nodes -days 999 &lt;/p&gt;&lt;p&gt;per pops &lt;/p&gt;&lt;p&gt;&lt;br&gt; 4 - editare /etc/courier/imapd-ssl e /etc/courier/pop-ssl ed assicurarsi che i percorsi dei certificati siano rispettivamente: &lt;/p&gt;&lt;p&gt;TLS_CERTFILE=/etc/courier/imapd.pem &lt;/p&gt;&lt;p&gt;TLS_CERTFILE=/etc/courier/pop3d.pem &lt;/p&gt;&lt;p&gt;&lt;br&gt; 5 - al solito rilanciare postfix e courier: &lt;/p&gt;&lt;p&gt;mail# /etc/init.d/ postfix restart &lt;/p&gt;&lt;p&gt;mail# /etc/init.d/ courier-imap-ssl restart &lt;/p&gt;&lt;p&gt;mail# /etc/init.d/ courier-pop-ssl restart &lt;/p&gt;&lt;p&gt;&lt;br&gt; 6 - Ricordarsi di aprire le porte 993 e 995 sul firewall! &lt;/p&gt;&lt;p&gt;Queste operazioni abiliteranno il traffico sicuro tra client e server. La prima volta il client dovrà accettare il certificato &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-115995893838873626?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/115995893838873626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=115995893838873626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/115995893838873626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/115995893838873626'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2006/10/debian-postfix-mysql-courier-virtual_04.html' title='Debian Postfix Mysql Courier Virtual Mail Server HowTo'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-114254326455436808</id><published>2006-03-16T21:51:00.000+01:00</published><updated>2006-06-06T11:56:46.806+02:00</updated><title type='text'>Solaris Zones</title><content type='html'>&lt;p&gt;Today i've been creating my first solaris zone, named "Sidney".  The final scope would be: have a couple of zones, and a multiple Oracle Servers in a Grid configuration.&lt;/p&gt;&lt;p&gt;You could read about that in the next posts (... hopefully ;-) )&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt; The system on boot-up is in the 'global' zone.  This is the master zone.&lt;/span&gt; &lt;/p&gt; &lt;pre&gt;# mkdir /x1/zones/&lt;zonename&gt;   [cannot be a symlink]&lt;br /&gt;# chmod 700 /x1/zones/&lt;zonename&gt;&lt;br /&gt;# zonecfg -z &lt;zonename&gt;&lt;br /&gt;create&lt;br /&gt;set zonepath=/x1/zones/&lt;zonename&gt;&lt;br /&gt;set autoboot=true (or autoboot=false)&lt;br /&gt;add inherit-pkg-dir&lt;br /&gt;  [read-only path, will be lofs'd from global zone]&lt;br /&gt; set dir=/opt&lt;br /&gt; end&lt;br /&gt;add net&lt;br /&gt; set address=&lt;ip&gt; [helios IP range starts 207.7.158.194]&lt;br /&gt; set physical=bge0 [for a U5, it'll be hme0]&lt;br /&gt; end&lt;br /&gt;commit&lt;br /&gt;exit&lt;br /&gt;# zoneadm -z &lt;zonename&gt; install&lt;br /&gt;['install' preps the zone.  It may take little while.]&lt;br /&gt;&lt;/zonename&gt;&lt;/ip&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/pre&gt;&lt;div class="section-content"&gt; &lt;p&gt;&lt;span style="font-weight: bold;"&gt; Helpful zone commands.  Run from the 'global' zone.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;pre&gt;Listing all zones:&lt;br /&gt;$ zoneadm list -vc&lt;br /&gt;&lt;br /&gt;Booting a zone:&lt;br /&gt;# zoneadm -z &lt;zonename&gt; boot&lt;br /&gt;&lt;br /&gt;Logging into a zone as the console:&lt;br /&gt;# zlogin -C &lt;zonename&gt;&lt;br /&gt;[escape via ~. ;&lt;br /&gt;remember to ~~ if you are connecting via SSH!]&lt;br /&gt;&lt;br /&gt;Logging into a zone&lt;br /&gt;[must be run as root; will connect as root of the zone]:&lt;br /&gt;# zlogin &lt;zonename&gt;&lt;br /&gt;[exit the zone by closing the shell]&lt;br /&gt;&lt;br /&gt;Log into a zone as a specific user:&lt;br /&gt;# zlogin -l &lt;username&gt; &lt;zonename&gt;&lt;br /&gt;&lt;br /&gt;Shutting down a zone:&lt;br /&gt;# zlogin&lt;br /&gt;# shutdown -i5 -y -g0 [typical solaris shutdown command]&lt;br /&gt;&lt;br /&gt;Rebooting a zone&lt;br /&gt;[forcible reboot; bypasses shutdown scripts]:&lt;br /&gt;# zoneadm -z &lt;zonename&gt; reboot&lt;br /&gt;&lt;br /&gt;Removing a zone:&lt;br /&gt;# zoneadm -z &lt;zone-to-zap&gt; uninstall&lt;br /&gt;# zonecfg -z &lt;zone-to-zap&gt; delete&lt;br /&gt;&lt;/zone-to-zap&gt;&lt;/zone-to-zap&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/username&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/zonename&gt;&lt;/pre&gt; &lt;h3&gt;    &lt;/h3&gt;&lt;span style="font-weight: bold;"&gt;Configuring the zone on initial bootup&lt;/span&gt;    &lt;h3&gt;&lt;a name="initial"&gt;&lt;/a&gt; &lt;/h3&gt;  &lt;pre&gt;1. Select English language                  - option 0&lt;br /&gt;2. Select English (C - 7-bit ASCII) locale  - option 0&lt;br /&gt;3. Select 'X Terminal Emulator' (xterms)    - option 12&lt;br /&gt;...&lt;br /&gt;4. Enter full hostname (i.e. &lt;zonename&gt;zones.apache.org)&lt;br /&gt;[ Esc-2 can be used to advance these menus as well as F2. ]&lt;br /&gt;[ Before this step, minotaur's named should have the name&lt;br /&gt;as a valid DNS entry ]&lt;br /&gt;5. Do not configure Kerberos security (this is the default)&lt;br /&gt;6. Select DNS for resolution (for now)&lt;br /&gt;&lt;br /&gt;...continue the steps.&lt;br /&gt;When finished, you will be able to log into your zone.&lt;br /&gt;&lt;br /&gt;&lt;/zonename&gt;&lt;/pre&gt;&lt;h3&gt;    &lt;a name="useradd"&gt;Creating users in a zone&lt;/a&gt;&lt;/h3&gt; &lt;div class="section-content"&gt;&lt;pre&gt;As root, ...&lt;br /&gt;&lt;br /&gt;# useradd &lt;username&gt;&lt;br /&gt;# passwd &lt;username&gt;&lt;br /&gt;&lt;br /&gt;Note Solaris doesn't create the home dirs by default.&lt;br /&gt;After creating the user, edit /etc/auto_home to have:&lt;br /&gt;&lt;br /&gt;username&lt;tab&gt;localhost:/export/home/username&lt;br /&gt;&lt;br /&gt;[ place that line underneath the +auto_home line ]&lt;br /&gt;&lt;br /&gt;Then, create the directory and run:&lt;br /&gt;&lt;br /&gt;# mkdir -p /export/home/&lt;username&gt;&lt;br /&gt;# chown &lt;username&gt; /export/home/&lt;username&gt;&lt;br /&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/username&gt;&lt;/username&gt;&lt;/username&gt;&lt;/tab&gt;&lt;/username&gt;&lt;/username&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-114254326455436808?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/114254326455436808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=114254326455436808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/114254326455436808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/114254326455436808'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2006/03/solaris-zones.html' title='Solaris Zones'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-113526561410969431</id><published>2005-12-22T16:12:00.000+01:00</published><updated>2005-12-22T16:34:54.583+01:00</updated><title type='text'>Linux Ubuntu. Umanità verso gli altri.</title><content type='html'>&lt;span style="font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Ho sempre avuto una qualche distribuzione di Linux sui miei PC, principalmente Red Hat e Suse. Ora ho optato definitivamete per UBUNTU.&lt;br /&gt;&lt;br /&gt;Se siete interessati a un sistema operativo che funzioni, andate su questo sito e scaricatevi questa distribuzione di Linux:&lt;br /&gt;&lt;br /&gt;http://www.crealabs.it/it/ubuntu-it.html&lt;br /&gt;&lt;br /&gt;Una volta installata, questa guida pratica per chi non fosse proprio skillato su linux in generale o su questa distribuzione in particolare:&lt;br /&gt;&lt;br /&gt;http://ubuntuguide.org/&lt;br /&gt;&lt;br /&gt;... questa per iniziare è la bibbia! ;-)&lt;br /&gt;&lt;br /&gt;Un pochino di concetti:&lt;br /&gt;&lt;br /&gt;Ubuntu Linux è una distribuzione GNU/Linux nata nel 2004 come derivazione di Debian per l'informatizzazione del secondo e terzo mondo. Rispetto alla sorella maggiore ha un orientamento più spiccato verso un utilizzo desktop e un'attenzione maggiore al supporto dell'hardware dei portatili. Ubuntu si propone anche di cercare una soluzione ad alcuni limiti di Debian: tempi di rilascio incerti e troppo distaccati tra una release e l'altra. Il ciclo di rilascio di Ubuntu è invece fissato in 6 mesi.&lt;br /&gt;&lt;br /&gt;Viene finanziata dalla società islandese Canonical Ltd pur rimanendo in tutto e per tutto un software libero.&lt;br /&gt;&lt;br /&gt;Il nome deriva da una parola Zulù diffusa in varie parti dell'Africa e che corrisponde all'incirca al concetto di "umanità verso gli altri". L'ideatore dell'iniziativa e titolare di Canonical è Mark Shuttleworth, un imprenditore sudafricano diventato evangelista dell'open source, al cui servizio ha posto le sue risorse.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-113526561410969431?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/113526561410969431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=113526561410969431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113526561410969431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113526561410969431'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2005/12/linux-ubuntu-umanit-verso-gli-altri.html' title='Linux Ubuntu. Umanità verso gli altri.'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-113520038366545981</id><published>2005-12-21T22:18:00.000+01:00</published><updated>2006-02-01T09:31:47.540+01:00</updated><title type='text'>SUN Cluster: Quick Reference Installazione</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Con questo post vorrei condividere una recente installazione di SUN Cluster che ho fatto su una SUN v240. Spesso i pdf della SUN sono un po' dispersivi.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lista della spesa:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2 SUN v240 (4CPU Sparc, 4GB Ram)&lt;br /&gt;1 badilata di storage SAN (EMC2 Symmetrix)&lt;br /&gt;4 HBA (2 per host) Qlogic 2200&lt;br /&gt;2 cavi cross per le Transport (Heartbeat)&lt;br /&gt;1 CD Sun Cluster 3.1&lt;br /&gt;&lt;br /&gt;Solaris 9 con Solaris Volume Manager&lt;br /&gt;(oppure Solaris 8 con Solstice Disk Suite 4.1 e relativa patch &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;108693-25&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;E ora Step-by-step:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Creo 1 slice (per ogni bootdisk) da 512MB per /globaldevices (+ creazione e mount del FS e upgrade vfstab)&lt;br /&gt;- Mirroro i dischi di boot con SDS (NB: i metadevices relativi a /globaldevices devono avere nome diverso sui nodi es: d100 sul nodo1 e d110 sul nodo2)&lt;br /&gt;&lt;br /&gt;- Allineo gli /etc/hosts delle macchine.&lt;br /&gt;- Installo pacchetti "SUN Cluster 3.1 u1" (./installer) su entrambi i nodi.&lt;br /&gt;- Definisco il domainname con il comando "domainname &lt;nomedominio&gt;" su entrambi i nodi.&lt;br /&gt;- Installazione/identificazione Cluster (./scinstall) (sul nodo 1)&lt;br /&gt;* Nomecluster: emre-cl&lt;br /&gt;* Nome nodi: emre1 , emre2&lt;br /&gt;* Transport adapters (heartbeat): bge2 , bge3&lt;br /&gt;NB1: ignorare gli errori che da l' "sccheck", quindi alla domanda se interrompere l'installazione in caso di errore durante&lt;br /&gt;l'scceck rispondere "no".&lt;br /&gt;Inizierà con la configurazione di un nodo, poi lo rebootterà, poi configurerà se stesso e si rebootterà.&lt;br /&gt;&lt;br /&gt;...dopo i vari reboot dei nodi (fatti da scinstall):&lt;br /&gt;&lt;br /&gt;Sul nodo 1:&lt;br /&gt;- Controllo che veda tutte le did con il comando scdidadm -L&lt;br /&gt;- Creo quorum devices e resetto la modalità "installmode" con scsetup (gli assegno una did es: "d4")&lt;br /&gt;"scsetup" eseguirà comunque i seguenti comandi:&lt;br /&gt;* scconf -a -q globaldev=d4&lt;br /&gt;* scconf -c -q reset&lt;br /&gt;* scconf -a -T node=.&lt;br /&gt;&lt;br /&gt;- Modifico i files "/etc/inet/ntp.cluster e /etc/inet/ntp.cluster.conf" su entrambi i nodi&lt;br /&gt;lasciando in questo caso la comunicazione peer-to-peer solo per i due membri (altrimenti di default è&lt;br /&gt;settato per cercarne il massimo dei nodi configurabili: 16)&lt;br /&gt;- Faccio un reboottino di entrambi i nodi (uno alla volta) e vedo cosa mi dice.&lt;br /&gt;- Con scstat controllo che veda i membri e i quorum online, e che i voti siano a posto.&lt;br /&gt;&lt;br /&gt;A questo punto parto con la configurazione SDS.&lt;br /&gt;&lt;br /&gt;Sul nodo primario:&lt;br /&gt;&lt;br /&gt;- Creo il diskset emre e ne acquisto la ownership&lt;br /&gt;* metaset -s emre -a -h emre1 emre2&lt;br /&gt;* metaset -s emre -t -f&lt;br /&gt;&lt;br /&gt;- Associo le did al diskset&lt;br /&gt;* metaset -s emre -a /dev/did/dsk/dX&lt;br /&gt;- E controllo che veda tutto su entrambi i nodi&lt;br /&gt;* metaset -s emre&lt;br /&gt;&lt;br /&gt;- Creo il volume "d90" associato al diskset "emre"&lt;br /&gt;* metainit -s emre -f d90 1 12 /dev/did/rdsk/dXsY&lt;br /&gt;- Controllo che veda il volume su entrmabi i nodi&lt;br /&gt;* metastat -s emre&lt;br /&gt;- Creo il filesystem sul volume "d90" sul nodo primario.&lt;br /&gt;* newfs /dev/md/emre/rdsk/d90&lt;br /&gt;&lt;br /&gt;Tornando al cluster, a questo punto avendo tutti i requisiti inizio a creare l'IPMPgroup, il resource group "emre-rg" e le risorse&lt;br /&gt;(dischi e logical hostname)&lt;br /&gt;Un occhio all' /etc/hosts e all' /etc/vfstab ...che siano completi e ben allineati su entrambi i nodi.&lt;br /&gt;&lt;br /&gt;- Creo gli IPMP Group (nel mio caso ho un interfaccia sola, non mi serve a nulla ma a quanto pare lui li desidera fortemente)&lt;br /&gt;NODO 1&lt;br /&gt;* ifconfig bge0 plumb 192.168.0.55 netmask + broadcast + -standby group emregroup up&lt;br /&gt;* ifconfig bge0 addif 192.168.0.172 deprecated -failover -standby up&lt;br /&gt;* if_mpadm -r bge0&lt;br /&gt;NODO2&lt;br /&gt;* ifconfig bge0 plumb 192.168.0.56 netmask + broadcast + -standby group emregroup up&lt;br /&gt;* ifconfig bge0 addif 192.168.0.173 deprecated -failover -standby up&lt;br /&gt;* if_mpadm -r bge0&lt;br /&gt;&lt;br /&gt;- Creo il Resource Group "emre-rg"&lt;br /&gt;* scrgadm -a -g emre-rg -h emre1,emre2&lt;br /&gt;&lt;br /&gt;- Aggiungo il "tipo risorsa" SUNW.HAStoragePlus&lt;br /&gt;* scrgadm -a -t SUNW.HAStoragePlus&lt;br /&gt;&lt;br /&gt;- Creo e attivo la Risorsa "emre-stor" (di tipo HAStoragePlus)&lt;br /&gt;* scrgadm -a -j emre-stor -g emre-rg -t SUNW.HAStoragePlus -x FilesystemMountPoints=/emre&lt;br /&gt;* scswitch -e -j emre-stor&lt;br /&gt;...qui vuole che esista il mountpoint, e che sia presente nelle vfstab.&lt;br /&gt;&lt;br /&gt;- Creo il Logical Hostname (occhio che sia presente il nome nell' /etc/hosts)&lt;br /&gt;* scrgadm -a -j emre-lh -g emre-rg -L -l emre-lh&lt;br /&gt;* scswitch -e -j emre-lh&lt;br /&gt;&lt;br /&gt;- Prove di switch varie:&lt;br /&gt;* scswitch -z -g emre-rg -h emre2&lt;br /&gt;* scswitch -z -g emre-rg -h emre1&lt;br /&gt;* scswitch -S -h gw1&lt;br /&gt;&lt;br /&gt;- E per disinstallare il tutto?&lt;br /&gt;&lt;br /&gt;Fare un bel tar di /etc/cluster e metterlo da parte.&lt;br /&gt;Buttar giù un bicchierino di scotch whisky.&lt;br /&gt;(Se fosse necessario, boottare senza cluster "boot -x")&lt;br /&gt;Lanciare "scinstall -r" e controllare che non faccia porcate.&lt;br /&gt;Reboottare gli ex-membri.&lt;/nomedominio&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-113520038366545981?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/113520038366545981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=113520038366545981' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113520038366545981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113520038366545981'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2005/12/sun-cluster-quick-reference.html' title='SUN Cluster: Quick Reference Installazione'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-113518556603093655</id><published>2005-12-21T17:48:00.000+01:00</published><updated>2005-12-21T18:19:26.043+01:00</updated><title type='text'>SUN T3: configurare un Partner Group</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Per prima cosa la lista della spesa:&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;- 2 Sun StorEdge T3&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- 1 Cavo console&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- 2 Cavi di interconnessione T3&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- 2 Bretelle ottiche (mono o multi modali, SC-SC)&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- 2 HBA installate correttamente sull'host a cui collegare il T3&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Supponiamo che l'host a cui collegheremo i T3 sia un Solaris 8.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;1) Connettere le bretelle ottiche.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: verdana;"&gt;2) Collegare i cavi di alimentazione.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;3) Connettersi alla console seriale del primo T3 e loggarsi come root.&lt;br /&gt;Eseguire i seguenti comandi:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;br /&gt;        sys mp_support rw&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-style: italic;"&gt;sys mirror off&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;        sys cache writebehind&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;Controllare i parametri con il comando:&lt;span style="font-style: italic;"&gt;&lt;br /&gt;       &lt;br /&gt;        sys list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4) Connettersi alla console del secondo T3 ed eseguire le stesse operazioni.&lt;br /&gt;5) Spegnere entrambi i T3&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;6) Collegarei cavi di interconnessione dei T3 come segue:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3178/1999/1600/t3_schema.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3178/1999/320/t3_schema.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;&lt;br /&gt;7) Connettersi alla console seriale del T3 Master.&lt;br /&gt;8) Accendere i T3 e seguire a console il boot dal Box "Master"&lt;br /&gt;Al boot rileverà di essere in una configurazione di Partner Group (in questo caso trattandosi di due  T3: "Partner Pair".&lt;br /&gt;Al termine del boot sarà possibile controllare il successo dell'operazione con il seguente comando:&lt;br /&gt;&lt;br /&gt;        &lt;span style="font-style: italic;"&gt;sys stat&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In caso di successo, il comando restituirà questo output:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       &lt;br /&gt;        Unit   State      Role    Partner&lt;br /&gt;        -----  ---------  ------  -------&lt;br /&gt;         1    ONLINE     Master    2&lt;br /&gt;         2    ONLINE     AlterM    1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: verdana;"&gt;A questo punto, potete eseguire le configurazioni dei volumi direttamente dalla console del box Master.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;/span&gt; &lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-113518556603093655?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113518556603093655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113518556603093655'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2005/12/sun-t3-configurare-un-partner-group_21.html' title='SUN T3: configurare un Partner Group'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20070501.post-113518819533369456</id><published>2005-12-21T17:02:00.000+01:00</published><updated>2005-12-21T22:36:52.060+01:00</updated><title type='text'>Primo Post!</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Ciao a &lt;span style="font-weight: bold;"&gt;tutti&lt;/span&gt;.&lt;br /&gt;Ho attivato oggi questo blog, un po' per gioco, un po' perchè non c'ho un cazzo da fare ;) e un po' per testare questo servizio (che effettivamente, sembra caruccio!) Cercherò nei prossimi giorni di inserire dei post, prevalentemente riguardo al mio &lt;span style="font-weight: bold;"&gt;lavoro&lt;/span&gt; (Information Technology). Spero così di trovare un modo semplice per condividere il mio know-how e di poter essere utile a qualcuno. A presto e... grazie per essere passato di qui :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20070501-113518819533369456?l=emrestar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emrestar.blogspot.com/feeds/113518819533369456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20070501&amp;postID=113518819533369456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113518819533369456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20070501/posts/default/113518819533369456'/><link rel='alternate' type='text/html' href='http://emrestar.blogspot.com/2005/12/primo-post.html' title='Primo Post!'/><author><name>Mauro "Emre" Ferrario</name><uri>http://www.blogger.com/profile/03455763663723654172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
