<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Linux on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/linux/</link>
    <description>Recent content in Linux on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Wed, 29 May 2024 14:51:51 +2900</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Synology - unknown filesystem type &#39;LVM2_member&#39; beim mount</title>
      
      
      <link>https://wolf-u.li/synology-unknown-filesystem-type-lvm2-member/</link>
      <pubDate>Thu, 23 Nov 2023 15:28:07 +2300</pubDate>
      <guid>https://wolf-u.li/synology-unknown-filesystem-type-lvm2-member/</guid>
      <description>&lt;p&gt;Wenn man &lt;a href=&#34;https://wolf-u.li/synology-ds720-nutzung-einer-ssd-als-volume&#34;
    title=&#34;wie ich&#34; 
   &gt;
  wie ich&lt;/a&gt; eine SSD als reguläres Volume genutzt hat, so hat man mit einem der letzten DSM 7.2 Updates (&amp;gt;7.2-64570 Update 1) leider das Problem bekommen, dass dieses nicht mehr zu mounten ist. Wenn man nun versucht diese Daten zu retten, so gibt es einen Weg:
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
Erstmal via SSH einloggen (jeder Administrator kann sich einloggen). Wenn kein SSH verfügbar oder der Port unbekannt ist, kann man dies in den Einstellungen unter &amp;ldquo;Terminal&amp;rdquo; ändern.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wenn man <a href="/synology-ds720-nutzung-einer-ssd-als-volume"
    title="wie ich" 
   >
  wie ich</a> eine SSD als reguläres Volume genutzt hat, so hat man mit einem der letzten DSM 7.2 Updates (&gt;7.2-64570 Update 1) leider das Problem bekommen, dass dieses nicht mehr zu mounten ist. Wenn man nun versucht diese Daten zu retten, so gibt es einen Weg:
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
Erstmal via SSH einloggen (jeder Administrator kann sich einloggen). Wenn kein SSH verfügbar oder der Port unbekannt ist, kann man dies in den Einstellungen unter &ldquo;Terminal&rdquo; ändern.</p>
<p>Dann das Raid zusammenbauen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mdadm --assemble --scan --verbose
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dann RAID device raussuchen, bei mir war es <code>md3</code>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat /proc/mdstat
</span></span></code></pre></td></tr></table>
</div>
</div><p>Temporäres Verzeichnis anlegen</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir /mnt/nvme_recover
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und einen mount versuchen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mount /dev/md3 /mnt/nvme_recover
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn dort die folgende Meldung zurückkommt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">mount: /mnt/nvme_recover: unknown filesystem type &#39;LVM2_member&#39;.
</span></span></code></pre></td></tr></table>
</div>
</div><p>So hatte man damals eine Volume Group darüber gelegt (damals hattest du dann <code>pvcreate /dev/md3</code> ausgeführt), dies kann man sich so ansehen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">vgdisplay
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und sieht dann in etwa so aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">  --- Volume group ---
</span></span><span class="line"><span class="cl">  VG Name               vg1
</span></span><span class="line"><span class="cl">  System ID
</span></span><span class="line"><span class="cl">  Format                lvm2
</span></span><span class="line"><span class="cl">  Metadata Areas        1
</span></span><span class="line"><span class="cl">  Metadata Sequence No  3
</span></span><span class="line"><span class="cl">  VG Access             read/write
</span></span><span class="line"><span class="cl">  VG Status             resizable
</span></span><span class="line"><span class="cl">  MAX LV                0
</span></span><span class="line"><span class="cl">  Cur LV                2
</span></span><span class="line"><span class="cl">  Open LV               0
</span></span><span class="line"><span class="cl">  Max PV                0
</span></span><span class="line"><span class="cl">  Cur PV                1
</span></span><span class="line"><span class="cl">  Act PV                1
</span></span><span class="line"><span class="cl">  VG Size               889.75 GiB
</span></span><span class="line"><span class="cl">  PE Size               4.00 MiB
</span></span><span class="line"><span class="cl">  Total PE              227775
</span></span><span class="line"><span class="cl">  Alloc PE / Size       227587 / 889.01 GiB
</span></span><span class="line"><span class="cl">  Free  PE / Size       188 / 752.00 MiB
</span></span><span class="line"><span class="cl">  [...]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  --- Volume group ---
</span></span><span class="line"><span class="cl">  VG Name               vg1000
</span></span><span class="line"><span class="cl">  System ID
</span></span><span class="line"><span class="cl">  Format                lvm2
</span></span><span class="line"><span class="cl">  Metadata Areas        1
</span></span><span class="line"><span class="cl">  Metadata Sequence No  2
</span></span><span class="line"><span class="cl">  VG Access             read/write
</span></span><span class="line"><span class="cl">  VG Status             resizable
</span></span><span class="line"><span class="cl">  MAX LV                0
</span></span><span class="line"><span class="cl">  Cur LV                1
</span></span><span class="line"><span class="cl">  Open LV               1
</span></span><span class="line"><span class="cl">  Max PV                0
</span></span><span class="line"><span class="cl">  Cur PV                1
</span></span><span class="line"><span class="cl">  Act PV                1
</span></span><span class="line"><span class="cl">  VG Size               3.63 TiB
</span></span><span class="line"><span class="cl">  PE Size               4.00 MiB
</span></span><span class="line"><span class="cl">  Total PE              952682
</span></span><span class="line"><span class="cl">  Alloc PE / Size       952682 / 3.63 TiB
</span></span><span class="line"><span class="cl">  Free  PE / Size       0 / 0
</span></span><span class="line"><span class="cl">  [...]
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dazu kann man sich die logical volumes angucken:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">lvdisplay -v vg1
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">    Using volume group(s) on command line.
</span></span><span class="line"><span class="cl">  --- Volume group ---
</span></span><span class="line"><span class="cl">  VG Name               vg1
</span></span><span class="line"><span class="cl">  System ID
</span></span><span class="line"><span class="cl">  Format                lvm2
</span></span><span class="line"><span class="cl">  Metadata Areas        1
</span></span><span class="line"><span class="cl">  Metadata Sequence No  3
</span></span><span class="line"><span class="cl">  VG Access             read/write
</span></span><span class="line"><span class="cl">  VG Status             resizable
</span></span><span class="line"><span class="cl">  MAX LV                0
</span></span><span class="line"><span class="cl">  Cur LV                2
</span></span><span class="line"><span class="cl">  Open LV               0
</span></span><span class="line"><span class="cl">  Max PV                0
</span></span><span class="line"><span class="cl">  Cur PV                1
</span></span><span class="line"><span class="cl">  Act PV                1
</span></span><span class="line"><span class="cl">  VG Size               889.75 GiB
</span></span><span class="line"><span class="cl">  PE Size               4.00 MiB
</span></span><span class="line"><span class="cl">  Total PE              227775
</span></span><span class="line"><span class="cl">  Alloc PE / Size       227587 / 889.01 GiB
</span></span><span class="line"><span class="cl">  Free  PE / Size       188 / 752.00 MiB
</span></span><span class="line"><span class="cl">  VG UUID               [...]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  --- Logical volume ---
</span></span><span class="line"><span class="cl">  LV Path                /dev/vg1/syno_vg_reserved_area
</span></span><span class="line"><span class="cl">  LV Name                syno_vg_reserved_area
</span></span><span class="line"><span class="cl">  VG Name                vg1
</span></span><span class="line"><span class="cl">  LV UUID                [...]
</span></span><span class="line"><span class="cl">  LV Write Access        read/write
</span></span><span class="line"><span class="cl">  LV Creation host, time ,
</span></span><span class="line"><span class="cl">  LV Status              NOT available
</span></span><span class="line"><span class="cl">  LV Size                12.00 MiB
</span></span><span class="line"><span class="cl">  Current LE             3
</span></span><span class="line"><span class="cl">  Segments               1
</span></span><span class="line"><span class="cl">  Allocation             inherit
</span></span><span class="line"><span class="cl">  Read ahead sectors     auto
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  --- Logical volume ---
</span></span><span class="line"><span class="cl">  LV Path                /dev/vg1/volume_2
</span></span><span class="line"><span class="cl">  LV Name                volume_2
</span></span><span class="line"><span class="cl">  VG Name                vg1
</span></span><span class="line"><span class="cl">  LV UUID                [...]
</span></span><span class="line"><span class="cl">  LV Write Access        read/write
</span></span><span class="line"><span class="cl">  LV Creation host, time ,
</span></span><span class="line"><span class="cl">  LV Status              NOT available
</span></span><span class="line"><span class="cl">  LV Size                889.00 GiB
</span></span><span class="line"><span class="cl">  Current LE             227584
</span></span><span class="line"><span class="cl">  Segments               1
</span></span><span class="line"><span class="cl">  Allocation             inherit
</span></span><span class="line"><span class="cl">  Read ahead sectors     auto
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  --- Physical volumes ---
</span></span><span class="line"><span class="cl">  PV Name               /dev/md3
</span></span><span class="line"><span class="cl">  PV UUID               [...]
</span></span><span class="line"><span class="cl">  PV Status             allocatable
</span></span><span class="line"><span class="cl">  Total PE / Free PE    227775 / 188
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun sieht man unter &ldquo;LV Status&rdquo; schon ein &ldquo;NOT available&rdquo;. Dieses muss man ändern:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">vgchange -ay vg1
</span></span></code></pre></td></tr></table>
</div>
</div><p>was in <code>2 logical volume(s) in volume group &quot;vg1&quot; now active</code> resultiert. Nun kann man via</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mount /dev/vg1/volume_2 /mnt/nvme_recover
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wieder das Volume mounten und darauf zugreifen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>ASRock DeskMini 310 erkennt SD-Card Reader nicht unter ESXi</title>
      
      
      <link>https://wolf-u.li/asrock-deskmini-310-erkennt-sd-card-reader-nicht-unter-esxi/</link>
      <pubDate>Sun, 28 Jun 2020 13:11:04 +2800</pubDate>
      <guid>https://wolf-u.li/asrock-deskmini-310-erkennt-sd-card-reader-nicht-unter-esxi/</guid>
      <description>&lt;p&gt;Während der Einrichtung von VMware ESXI auf dem ASRock DeskMini 310 konnte ich den Hypervisor nicht von dem internen SD-Card Reader laufen lassen.
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
Derzeit habe ich und auch &lt;link rel=dns-prefetch href=//www.reddit.com /&gt; &lt;a href=&#34;https://www.reddit.com/r/homelab/comments/dsmmfm/deskmini_310_esxi_sd_not_detected/&#34;
    title=&#34;reddit&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  reddit&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; keine Lösung dafür. Es gibt wohl einfach keinen Treiber für den SD-Card Reader.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Während der Einrichtung von VMware ESXI auf dem ASRock DeskMini 310 konnte ich den Hypervisor nicht von dem internen SD-Card Reader laufen lassen.
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
Derzeit habe ich und auch <link rel=dns-prefetch href=//www.reddit.com /> <a href="https://www.reddit.com/r/homelab/comments/dsmmfm/deskmini_310_esxi_sd_not_detected/"
    title="reddit" 
     target="_blank" rel="nofollow noopener noreferrer" >
  reddit&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> keine Lösung dafür. Es gibt wohl einfach keinen Treiber für den SD-Card Reader.</p>
<p>Bisher habe ich noch nicht rausgefunden, wie man manuelle Treiber in das Image injiziert. Bis ich das rausgefunden habe, bleibt es beim Betrieb via USB-Stick oder USB-Card Reader.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Lautstärke des Raspberry PI auf 100% erhöhen</title>
      
      
      <link>https://wolf-u.li/lautstaerke-des-raspberry-pi-auf-100-erhoehen/</link>
      <pubDate>Mon, 08 Apr 2019 08:07:00 +0800</pubDate>
      <guid>https://wolf-u.li/lautstaerke-des-raspberry-pi-auf-100-erhoehen/</guid>
      <description>&lt;p&gt;Gerade habe ich mal wieder den Befehl zum anheben der Lautstärke der integrierten Soundkarte des Raspberry PI unter Raspbian gesucht.&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;p&gt;So einfach gehts:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;amixer sset PCM,0 100%
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Wobei 100% für die absolute Lautstärke steht.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Gerade habe ich mal wieder den Befehl zum anheben der Lautstärke der integrierten Soundkarte des Raspberry PI unter Raspbian gesucht.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>So einfach gehts:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">amixer sset PCM,0 100%
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wobei 100% für die absolute Lautstärke steht.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Logdateien leeren unter Linux</title>
      
      
      <link>https://wolf-u.li/logdateien-leeren-unter-linux/</link>
      <pubDate>Fri, 04 Jun 2010 01:49:46 +0400</pubDate>
      <guid>https://wolf-u.li/logdateien-leeren-unter-linux/</guid>
      <description>&lt;p&gt;Heute habe ich mit einem Programm herumexperimentiert, welches in eine Logdatei Infos geschrieben hatte. Da ich immer mal wieder den Status des Programm zurücksetzen wollte, musste ich die Logdatei leeren, ohne die Datei zu entfernen&lt;/p&gt;
&lt;p&gt;Hierzu habe ich verschiedene Möglichkeiten genutzt.&lt;/p&gt;
&lt;p&gt;Möchte man die Datei einfach nur leeren, so genügt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:&amp;gt; logfile.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Sollen hingegen die letzten 5 Zeilen behalten werden, so nutzt man am besten eine Zwischendatei:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tail -n &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt; logfile.log &amp;gt; logfile.log.tmp &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; mv logfile.log.tmp logfile.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Oder alternativ (ohne Zwischendatei, geht aber nicht immer):&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute habe ich mit einem Programm herumexperimentiert, welches in eine Logdatei Infos geschrieben hatte. Da ich immer mal wieder den Status des Programm zurücksetzen wollte, musste ich die Logdatei leeren, ohne die Datei zu entfernen</p>
<p>Hierzu habe ich verschiedene Möglichkeiten genutzt.</p>
<p>Möchte man die Datei einfach nur leeren, so genügt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">:&gt; logfile.log
</span></span></code></pre></td></tr></table>
</div>
</div><p>Sollen hingegen die letzten 5 Zeilen behalten werden, so nutzt man am besten eine Zwischendatei:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">tail -n <span class="m">5</span> logfile.log &gt; logfile.log.tmp <span class="o">&amp;&amp;</span> mv logfile.log.tmp logfile.log
</span></span></code></pre></td></tr></table>
</div>
</div><p>Oder alternativ (ohne Zwischendatei, geht aber nicht immer):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;</span><span class="k">$(</span>tail -5 logfile.log<span class="k">)</span><span class="s2">&#34;</span> &gt; logfile.log
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Unifi Controller auf Port 443</title>
      
      
      <link>https://wolf-u.li/unifi-controller-auf-port-443/</link>
      <pubDate>Fri, 18 Jan 2019 08:24:29 +1800</pubDate>
      <guid>https://wolf-u.li/unifi-controller-auf-port-443/</guid>
      <description>&lt;p&gt;Seit langer Zeit läuft ein Unifi Controller in meinem Netzwerk. In der Standard-Installation wird dessen HTTPS+Port auf Port 8443 bereitgestellt, was mir aber nicht &amp;ldquo;hübsch&amp;rdquo; genug war. Ich wollte, dass dieser auf dem Port 443 verfügbar ist, damit ich nicht den Port wissen muss. Das gestaltete sich aber nicht so einfach, denn Ports &amp;lt;1024 sind nur von privilegierten Programmen nutzbar.&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;p&gt;Natürlich kann man nun alle möglichen Workarounds durchführen um den Unifi Controller hinzubiegen (aber bitte bitte niemals unter root starten!), ich habs easy auf meinem Ubuntu 18.04 LTS gelöst:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Seit langer Zeit läuft ein Unifi Controller in meinem Netzwerk. In der Standard-Installation wird dessen HTTPS+Port auf Port 8443 bereitgestellt, was mir aber nicht &ldquo;hübsch&rdquo; genug war. Ich wollte, dass dieser auf dem Port 443 verfügbar ist, damit ich nicht den Port wissen muss. Das gestaltete sich aber nicht so einfach, denn Ports &lt;1024 sind nur von privilegierten Programmen nutzbar.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>Natürlich kann man nun alle möglichen Workarounds durchführen um den Unifi Controller hinzubiegen (aber bitte bitte niemals unter root starten!), ich habs easy auf meinem Ubuntu 18.04 LTS gelöst:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo iptables -t nat -I PREROUTING -p tcp --dport <span class="m">443</span> -j REDIRECT --to-ports <span class="m">8443</span>
</span></span><span class="line"><span class="cl">sudo apt install iptables-persistent
</span></span></code></pre></td></tr></table>
</div>
</div><p>Was machen diesen Kommandos?
Zuerst wird eine Regel in den lokalen iptables, d.h. der &ldquo;firewall&rdquo; von Linux definiert um den Port 443 auf Port 8443 umzuleiten. Danach wird das Paket iptables-persistent installiert, was diese Regel auch nach einem Reboot wiederherstellt.</p>
<p>Damit ist der Controller dann unter 8443 und 443 verfügbar und das funktioniert problemlos &hellip; ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Vuvuzela-Filter für VLC auf Windows und Linux besonders einfach für T-Home Entertain Kunden</title>
      
      
      <link>https://wolf-u.li/vuvuzela-filter-fuer-vlc-auf-windows-und-linux-besonders-einfach-fuer-t-home-entertain-kunden/</link>
      <pubDate>Tue, 15 Jun 2010 17:58:36 +1500</pubDate>
      <guid>https://wolf-u.li/vuvuzela-filter-fuer-vlc-auf-windows-und-linux-besonders-einfach-fuer-t-home-entertain-kunden/</guid>
      <description>&lt;p&gt;Wen nerven die lieben Vuvuzelas nicht? Meines Erachtens ist dieses gesumme nicht sehr spielfördernd, aber da respektiere ich natürlich die Gastgeber. Dennoch mag ich das gesumme nicht hören, weshalb ich das gerne ausfiltern möchte. Wie ich bereits &lt;a href=&#34;https://wolf-u.li/3234/howto-empfang-oeffentlich-rechtlicher-sender-mit-t-home-entertainment-auf-dem-pc/&#34;
    title=&#34;vor einiger Zeit geschrieben&#34; 
   &gt;
  vor einiger Zeit geschrieben&lt;/a&gt; habe, empfangen T-Home Entertain Kunden den Live-Stream der öffentlich-Rechtlichen Sender direkt auch am Rechner, was das Filtern erheblich vereinfacht. So kann der VLC dank einiger Parameter dazu gebracht werden, die (laut &lt;link rel=dns-prefetch href=//www.surfpoeten.de /&gt; &lt;a href=&#34;http://www.surfpoeten.de/tube/vuvuzela_filter&#34;
    title=&#34;surfpoeten&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  surfpoeten&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;) nervenden 233, 466, 932 und 1864Hz ausfiltern.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wen nerven die lieben Vuvuzelas nicht? Meines Erachtens ist dieses gesumme nicht sehr spielfördernd, aber da respektiere ich natürlich die Gastgeber. Dennoch mag ich das gesumme nicht hören, weshalb ich das gerne ausfiltern möchte. Wie ich bereits <a href="/3234/howto-empfang-oeffentlich-rechtlicher-sender-mit-t-home-entertainment-auf-dem-pc/"
    title="vor einiger Zeit geschrieben" 
   >
  vor einiger Zeit geschrieben</a> habe, empfangen T-Home Entertain Kunden den Live-Stream der öffentlich-Rechtlichen Sender direkt auch am Rechner, was das Filtern erheblich vereinfacht. So kann der VLC dank einiger Parameter dazu gebracht werden, die (laut <link rel=dns-prefetch href=//www.surfpoeten.de /> <a href="http://www.surfpoeten.de/tube/vuvuzela_filter"
    title="surfpoeten" 
     target="_blank" rel="nofollow noopener noreferrer" >
  surfpoeten&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>) nervenden 233, 466, 932 und 1864Hz ausfiltern.</p>
<p>Der Aufruf lautet:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="s2">&#34;C:\Program Files (x86)\VideoLAN\VLC\vlc.exe&#34;</span> --audio-filter<span class="o">=</span>param_eq --param-eq-f1<span class="o">=</span><span class="m">233</span> --param-eq-f2<span class="o">=</span><span class="m">466</span> --param-eq-f3<span class="o">=</span><span class="m">932</span> --param-eq-gain1<span class="o">=</span>-20 --param-eq-gain2<span class="o">=</span>-20 --param-eq-gain3<span class="o">=</span>-20 --param-eq-lowf<span class="o">=</span><span class="m">100</span> --param-eq-lowgain<span class="o">=</span><span class="m">15</span> --param-eq-q1<span class="o">=</span><span class="m">10</span> --param-eq-q2<span class="o">=</span><span class="m">10</span> --param-eq-q3<span class="o">=</span><span class="m">10</span> <span class="s2">&#34;rtp://@239.35.10.2:10000&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Download der BAT-Datei: <a href="/u/128"
    title="vuvuzelastop_vlc_HD.zip" 
   >
  vuvuzelastop_vlc_HD.zip</a>
Um das ZDF HD ohne Vuvuzela zu sehen. für die normale Auflösung lautet er:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="s2">&#34;C:\Program Files (x86)\VideoLAN\VLC\vlc.exe&#34;</span> --audio-filter<span class="o">=</span>param_eq --param-eq-f1<span class="o">=</span><span class="m">233</span> --param-eq-f2<span class="o">=</span><span class="m">466</span> --param-eq-f3<span class="o">=</span><span class="m">932</span> --param-eq-gain1<span class="o">=</span>-20 --param-eq-gain2<span class="o">=</span>-20 --param-eq-gain3<span class="o">=</span>-20 --param-eq-lowf<span class="o">=</span><span class="m">100</span> --param-eq-lowgain<span class="o">=</span><span class="m">15</span> --param-eq-q1<span class="o">=</span><span class="m">10</span> --param-eq-q2<span class="o">=</span><span class="m">10</span> --param-eq-q3<span class="o">=</span><span class="m">10</span> <span class="s2">&#34;rtp://@1:10000
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Download der BAT-Datei: <a href="/u/127"
    title="vuvuzelastop_vlc_SD.zip" 
   >
  vuvuzelastop_vlc_SD.zip</a></p>
<p>Ansonsten gibts noch die Möglichkeit, den Rechner nur als Durchgangstation zu nutzen. Dann werden die Vuvuzelas per Filter in VSTHost und Electri-Q ausgeblendet: PDF-File &amp; Equalizer-File zum Download</p>
<p><link rel=dns-prefetch href=//www.pcwelt.de /> <a href="http://www.pcwelt.de/specials/wm-special/2344498/pc-welt-vuvuzela-filter-fuer-vlc-media-player-und-mplayer/"
    title="Quelle" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Quelle&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Probleme mit neuer Netzwerkkarte nach Austausch unter Gentoo</title>
      
      
      <link>https://wolf-u.li/probleme-mit-neuer-netzwerkkarte-nach-austausch-unter-gentoo/</link>
      <pubDate>Mon, 18 Jun 2007 11:37:17 +1800</pubDate>
      <guid>https://wolf-u.li/probleme-mit-neuer-netzwerkkarte-nach-austausch-unter-gentoo/</guid>
      <description>&lt;p&gt;Sehr geehrter Leser :)
lang lang ist&amp;rsquo;s her, dass ich das letzte Mal gebloggt habe, mittlerweile hat sich viel getan und vor allem bin ich mittlerweile ein Gentoo-Fan (was nicht heisst, dass ich gar kein Debian mehr betreibe).&lt;/p&gt;
&lt;p&gt;Mein letztes Problem mit Gentoo war eine neue Netzwerkkarte, nachdem die alte ein paar Macken aufwies. Die alte Onboard-Netzwerkkarte wurde entfernt und stattdessen eine &amp;ldquo;Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 0c)&amp;rdquo; als PCI-Steckkarte installiert. Natürlich musste der Kernel neu gebaut werden, die Optionen &amp;ldquo;CONFIG_EEPRO100=y&amp;rdquo; und &amp;ldquo;CONFIG_E100=y&amp;rdquo; wurden so fest in den Kernel einkompiliert.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Sehr geehrter Leser :)
lang lang ist&rsquo;s her, dass ich das letzte Mal gebloggt habe, mittlerweile hat sich viel getan und vor allem bin ich mittlerweile ein Gentoo-Fan (was nicht heisst, dass ich gar kein Debian mehr betreibe).</p>
<p>Mein letztes Problem mit Gentoo war eine neue Netzwerkkarte, nachdem die alte ein paar Macken aufwies. Die alte Onboard-Netzwerkkarte wurde entfernt und stattdessen eine &ldquo;Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 0c)&rdquo; als PCI-Steckkarte installiert. Natürlich musste der Kernel neu gebaut werden, die Optionen &ldquo;CONFIG_EEPRO100=y&rdquo; und &ldquo;CONFIG_E100=y&rdquo; wurden so fest in den Kernel einkompiliert.</p>
<p>Nach einem Reboot meldete das Syslog jedoch folgende Fehlermeldung:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">rc-scripts: network interface eth0 does not exist
</span></span><span class="line"><span class="cl">rc-scripts: Please verify hardware or kernel module (driver)
</span></span><span class="line"><span class="cl">rc-scripts: ERROR: cannot start sshd as net.eth0 could not start
</span></span></code></pre></td></tr></table>
</div>
</div><p>was mich ein wenig erstaunte, denn dmesg meldete:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html
</span></span><span class="line"><span class="cl">eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin  and others
</span></span><span class="line"><span class="cl">ACPI: PCI Interrupt 0000:00:08.0[A] -&gt; GSI 16 (level, low) -&gt; IRQ 16
</span></span><span class="line"><span class="cl">eth0: OEM i82557/i82558 10/100 Ethernet, 00:03:47:B0:ED:D3, IRQ 16.
</span></span><span class="line"><span class="cl">Board assembly a29355-003, Physical connectors present: RJ45
</span></span><span class="line"><span class="cl">Primary interface chip i82555 PHY #1.
</span></span><span class="line"><span class="cl">General self-test: passed.
</span></span><span class="line"><span class="cl">Serial sub-system self-test: passed.
</span></span><span class="line"><span class="cl">Internal registers self-test: passed.
</span></span><span class="line"><span class="cl">ROM checksum self-test: passed (0x3258698e).
</span></span><span class="line"><span class="cl">e100: Intel(R) PRO/100 Network Driver, 3.5.17-k2-NAPI
</span></span><span class="line"><span class="cl">e100: Copyright(c) 1999-2006 Intel Corporation
</span></span></code></pre></td></tr></table>
</div>
</div><p>Diese Meldungen kommen sowohl, wenn ich mir die IP über DHCP zuweisen lassen würde (in /etc/conf.d/net eingestellt) oder fest eintrage. Ich konnte jedoch ohne Probleme mit dieser Netzwerkkarte ein Rescue-System booten und darin arbeiten, was meine Erklärung dafür war, dass warum meines Erachtens die neue Karte nicht kaputt sein konnte</p>
<p>Ich habe die Karte natürlich über &ldquo;rc-update add net.eth0 default&rdquo; zum Starten angewiesen, der Link ist auch korrekt erstellt (und hat mit der alten Karte funktioniert).</p>
<p>Letztendlich wusste ich nicht mehr weiter und meldete mein Problem im offiziellen Gentoo-Forum, wo mir innerhalb von wenigen Minuten geholfen werden konnte. Das Problem hätte mir auffallen müssen, als folgende Einträge im Log aufgetaucht sind:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">udevd-event[5100]: run_program: exec of program &#39;/sbin/udev_run_hotplugd&#39; failed
</span></span><span class="line"><span class="cl">udevd-event[5101]: run_program: exec of program &#39;/sbin/udev_run_devd&#39; failed
</span></span></code></pre></td></tr></table>
</div>
</div><p>Das Problem war relativ einfach in den Griff zu bekommen (<link rel=dns-prefetch href=//forums.gentoo.org /> <a href="http://forums.gentoo.org/viewtopic-t-562337.html"
    title="Quelle" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Quelle&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>):</p>
<p>In der Datei <code>/etc/udev/rules.d/70-persistent-net.rules</code> stand bei mir folgendes:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl"># This file was automatically generated by the /lib/udev/write_net_rules
</span></span><span class="line"><span class="cl"># program, probably run by the persistent-net-generator.rules rules file.
</span></span><span class="line"><span class="cl">#
</span></span><span class="line"><span class="cl"># You can modify it, as long as you keep each rule on a single line.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"># PCI device 0x1106:0x3065 (via-rhine)
</span></span><span class="line"><span class="cl">SUBSYSTEM==&#34;net&#34;, DRIVERS==&#34;?*&#34;, ATTRS{address}==&#34;00:0c:6e:92:02:aa&#34;, NAME=&#34;eth0&#34;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"># PCI device 0x8086:0x1229 (e100)
</span></span><span class="line"><span class="cl">SUBSYSTEM==&#34;net&#34;, DRIVERS==&#34;?*&#34;, ATTRS{address}==&#34;00:03:47:b0:ed:d3&#34;, NAME=&#34;eth1&#34;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Man beachte hierbei: VIA Rhine war meine vorherige Netzwerkkarte, die e100 meine neue. Die neue Karte wurde von udev einfach als eth1 eingetragen und war daher auch nicht unter eth0 erkannt worden. Ich habe nun schlicht und einfach die alte rausgeworfen, bei e100 auch eth0 eingetragen und schon war das Problem behoben.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl"># PCI device 0x8086:0x1229 (e100)
</span></span><span class="line"><span class="cl">SUBSYSTEM==&#34;net&#34;, DRIVERS==&#34;?*&#34;, ATTRS{address}==&#34;00:03:47:b0:ed:d3&#34;, NAME=&#34;eth0&#34;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Vielen Dank ans <link rel=dns-prefetch href=//forums.gentoo.org /> <a href="http://forums.gentoo.org"
    title="Gentoo-Forum" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Gentoo-Forum&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> für den schnellen Support, vielleicht hilft dieser Post dem einen oder anderen verzweifelten Gentoo-Besitzer</p>
]]></content:encoded>
    </item>
    <item>
      <title>screen</title>
      
      
      <link>https://wolf-u.li/screen/</link>
      <pubDate>Fri, 24 Mar 2006 12:46:16 +2400</pubDate>
      <guid>https://wolf-u.li/screen/</guid>
      <description>&lt;p&gt;screen ist meiner Meinung nach eines der nützlichsten Tools. Es erstellt ein virtuelles Terminal, welches auch nach dem ausloggen weiterläuft, man kann aber noch viel mehr damit machen.&lt;/p&gt;
&lt;p&gt;Einen neuen Screen erstellt man mit:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;screen -R name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;wobei der name freiwillig ist. Nun können wir beliebige Befehle eingeben und dann mit &lt;strong&gt;CTRL+a d&lt;/strong&gt; detachen und befinden uns wieder im ursprünglichen Terminal. Wollen wir wieder zurück in den screen, geben wir den obigen screen-Befehl nochmals ein. Wir können uns auch von mehreren Terminals (z.B. auch über ssh) gleichzeitig auf einen screen verbinden, und zwar mit dem Aufruf:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>screen ist meiner Meinung nach eines der nützlichsten Tools. Es erstellt ein virtuelles Terminal, welches auch nach dem ausloggen weiterläuft, man kann aber noch viel mehr damit machen.</p>
<p>Einen neuen Screen erstellt man mit:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">screen -R name
</span></span></code></pre></td></tr></table>
</div>
</div><p>wobei der name freiwillig ist. Nun können wir beliebige Befehle eingeben und dann mit <strong>CTRL+a d</strong> detachen und befinden uns wieder im ursprünglichen Terminal. Wollen wir wieder zurück in den screen, geben wir den obigen screen-Befehl nochmals ein. Wir können uns auch von mehreren Terminals (z.B. auch über ssh) gleichzeitig auf einen screen verbinden, und zwar mit dem Aufruf:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">screen -x name
</span></span></code></pre></td></tr></table>
</div>
</div><p>Sind wir im screen drinn, kann man mit CTRL+a c weitere Fenster erstellen. Mit CTRL+a &quot; bekommt man ein Menü aller Fenster, und mit CTRL+a Space bzw. CTRL+a Backspace kann man zwischen den Fenstern wechseln.</p>
<p>Eine interessante Fähigkeit von screen ist auch, mehrere Fenster untereinander zu haben. Mit CTRL+a S splitten wir das aktuelle Fenster, wechseln ins neue Fenster mit CTRL+a Tabulator und können dort das neue Fenster mit z.B. CTRL+a &quot; auswählen. Um nur noch das aktive Fenster zu sehen, drücken wir CTRL+a Q.</p>
<p>screen beherrscht auch Copy&amp;Paste. Mit CTRL+a Escape oder CTRL+a [ wechseln wir in den Markierungs- und zugleich Scrollmodus. Mit den Pfeiltasten wählen wir den ersten Punkt der Markierung aus, drücken dann Space und wählen den letzten Punkt der Markierung aus und drücken schliesslich nochmal Space, damit der Text kopiert wird. Einfügen können wir mit CTRL+a ].</p>
<p>Verrückter gehts kaum noch ;)</p>
<p>Quelle: <link rel=dns-prefetch href=//www.eggdrop.ch /> <a href="https://www.eggdrop.ch"
    title="www.eggdrop.ch" 
     target="_blank" rel="nofollow noopener noreferrer" >
  www.eggdrop.ch&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Der Befehl &#34;time&#34; zum messen von Programmlaufzeiten</title>
      
      
      <link>https://wolf-u.li/der-befehl-time-zum-messen-von-programmlaufzeiten/</link>
      <pubDate>Thu, 25 May 2006 11:37:27 +2500</pubDate>
      <guid>https://wolf-u.li/der-befehl-time-zum-messen-von-programmlaufzeiten/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2006/05/690-linux.webp&#34; alt=&#34;Linux&#34; loading=&#34;lazy&#34;&gt;
Heute habe ich mal wieder einen Kernel gebaut und wollte wissen wie lange das ganze dauert. Nachdem ich aber nicht die ganze Zeit wie gebannt davor sitzen möchte, habe ich also nach einem Programm gesucht, welches das kann. Das Programm &amp;ldquo;time&amp;rdquo; ermöglicht mir genau das.&lt;/p&gt;
&lt;p&gt;time wird einfach nur einer normalen Programmausführung vorgeschalten:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;time&lt;/span&gt; wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.16.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;und gibt dann einen output aus. Ich habe mal einen Kernel gebaut, was dann hier folgendes ergeben hat:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><img src="/upload/2006/05/690-linux.webp" alt="Linux" loading="lazy">
Heute habe ich mal wieder einen Kernel gebaut und wollte wissen wie lange das ganze dauert. Nachdem ich aber nicht die ganze Zeit wie gebannt davor sitzen möchte, habe ich also nach einem Programm gesucht, welches das kann. Das Programm &ldquo;time&rdquo; ermöglicht mir genau das.</p>
<p>time wird einfach nur einer normalen Programmausführung vorgeschalten:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">time</span> wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.16.tar.bz2
</span></span></code></pre></td></tr></table>
</div>
</div><p>und gibt dann einen output aus. Ich habe mal einen Kernel gebaut, was dann hier folgendes ergeben hat:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">real 13m1.974s
</span></span><span class="line"><span class="cl">user 9m9.226s
</span></span><span class="line"><span class="cl">sys 1m24.309s
</span></span></code></pre></td></tr></table>
</div>
</div><p>Im endeffekt hats also 13 Minuten und 1,9 sekunden gedauert.</p>
<p>Über &ldquo;man time&rdquo; bekommt man auch noch mehr Hilfe zu time, auch andere Formatierungen usw :)</p>
<p>Gruß
Uli</p>
]]></content:encoded>
    </item>
    <item>
      <title>Kernel 2.6 für Debian 3.1 Sarge kompilieren (auf &#34;Debian-Art&#34;)</title>
      
      
      <link>https://wolf-u.li/kernel-26-fuer-debian-31-sarge-kompilieren-auf-debian-art/</link>
      <pubDate>Mon, 15 May 2006 11:37:47 +1500</pubDate>
      <guid>https://wolf-u.li/kernel-26-fuer-debian-31-sarge-kompilieren-auf-debian-art/</guid>
      <description>&lt;p&gt;Heute habe ich mal wieder Kernel-Update gemacht. Normalerweise habe ich alles manuell gemacht, heute werde ich ihn auf &amp;ldquo;Debian-Art&amp;rdquo; bauen.
Ausgangskonfiguration des Servers&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debian 3.1&lt;/li&gt;
&lt;li&gt;Kernel 2.6&lt;/li&gt;
&lt;li&gt;AMD 3000+ (Kein 64-Bit, Kein Dual-Core)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zunächst müssen ein paar Packete geholt werden, damit der Kernel überhaupt kompiliert werden kann.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt-get install bzip2 libncurses5-dev kernel-package module-init-tools binutils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es gibt ein paar vorbestimmte Dinge beim Kernelbauen, eins davon ist, dass alles in &lt;strong&gt;/usr/src/&lt;/strong&gt; stattfindet, wo wir nun erstmal hinwechseln:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute habe ich mal wieder Kernel-Update gemacht. Normalerweise habe ich alles manuell gemacht, heute werde ich ihn auf &ldquo;Debian-Art&rdquo; bauen.
Ausgangskonfiguration des Servers</p>
<ul>
<li>Debian 3.1</li>
<li>Kernel 2.6</li>
<li>AMD 3000+ (Kein 64-Bit, Kein Dual-Core)</li>
</ul>
<p>Zunächst müssen ein paar Packete geholt werden, damit der Kernel überhaupt kompiliert werden kann.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt-get install bzip2 libncurses5-dev kernel-package module-init-tools binutils
</span></span></code></pre></td></tr></table>
</div>
</div><p>Es gibt ein paar vorbestimmte Dinge beim Kernelbauen, eins davon ist, dass alles in <strong>/usr/src/</strong> stattfindet, wo wir nun erstmal hinwechseln:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /usr/src/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend brauchen wir einen aktuellen Kernel. Diesen bekommt man, wenn man auf <link rel=dns-prefetch href=//kernel.org /> <a href="http://kernel.org"
    title="Kernel.org" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Kernel.org&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> geht und dort in der obersten Zeile (&ldquo;The latest stable version of the Linux kernel is:&rdquo;) den link des Buchstaben &ldquo;F&rdquo; (Full Source) kopiert.
Momentan ist Kernel 2.6.16.16 aktuell:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.16.tar.bz2
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anmerkung: Besser ist es <link rel=dns-prefetch href=//www.kernel.org /> <a href="http://www.kernel.org/pub/linux/kernel/v2.6/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> den Kernel rauszusuchen und herunterzuladen, der Speed ist deutlich besser.
Dieser muss nun entpackt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">tar xvfj linux-2.6.16.16.tar.bz2
</span></span></code></pre></td></tr></table>
</div>
</div><p>Je nach dem ob man schon mal einen Kernel gebaut hat befindet sich nun ein Symbolischer Link auf die Kernelquellen namens &ldquo;linux&rdquo; im Verzeichnis, welcher zunächst entfernt werden muss:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">rm linux
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun muss der aktuelle Link gelegt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ln -s linux-2.6.16.16 linux
</span></span></code></pre></td></tr></table>
</div>
</div><p>Damit sind zunächst die Vorarbeiten abgeschlossen.</p>
<p>Nachdem wir bereits im ersten Teil des Tutorials alle Vorarbeiten zum Kernelbau geleistet haben, können wir ihn nun konfigurieren und kompilieren.
Wir wechseln in das Kernel-Verzeichnis:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /usr/src/linux/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und räumen dort erst mal auf (Mr Proper ;) ) (Dies sollte auch gemacht werden, wenn man bereits kompiliert hatte und man den Vorgang auf sauberer Basis nochmals durchführen möchte)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make mrproper
</span></span></code></pre></td></tr></table>
</div>
</div><p>Jetzt kommt ein wichtiger Schritt, das Einfügen der alten Kernel-Config in das Verzeichnis. Damit wir nicht alle Optionen für einen neuen Kernel nochmals manuell setzen müssen, können wir die alte Config verwenden. Diese findet man normalerweise unter <strong>/boot/</strong>
Bei mir heisst der Befehl dann:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp /boot/config-2.6.15 .config
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun startet man das Configurationsprogramm für den Kernel(wobei die alte Config berücksichtigt wird):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make menuconfig
</span></span></code></pre></td></tr></table>
</div>
</div><p>Meine persönliche Erfahrung: So wenig wie nötig in den Kernel einbauen, jedoch so viel wie nötig. SCSI braucht man nicht einkompilieren, wenn man kein SCSI nutzt. Auch nicht als Modul. ACHTUNG SATA = SCSI, wer also S-ATA Festplatten hat, muss SCSI einschalten.Ich habe bei mir alles, was ich brauchte, fest einkompiliert, und Module abgeschalten.</p>
<p>Wenn alle Einstellungen getroffen sind, dann gibt man nicht den Vorschlag den der Kernel macht, ein, sondern den folgenden Befehl:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">make-kpkg kernel_image --revision uli.0
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wobei das letzte &ldquo;uli.0&rdquo; nur zur unterscheidung zwischen verschiedenen Kernel-Versionen dient. Das wird später dem Debian-Paket angefügt und man hat dann den besseren Ãœberblick über verschiedene Kompilierungsversuche. Je nachdem wie schnell der Rechner ist, kann das eine Weile dauern. Bei mir dauerts auf einem AMD2500+ ca 20 Minuten, auf einem AMD3000+ ca 15 Minuten.</p>
<p>Wenn der Vorgang abgeschlossen ist, dann findet man den neuen Kernel in <strong>/usr/src</strong>, wohin wir nun wechseln und den Kernel anschließend installieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /usr/src/
</span></span><span class="line"><span class="cl">dpkg -i kernel-image-2.6.16.16_uli.0_i386.deb
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn dies erfolgreich verlaufen ist, dann ist nun der Kernel eingebaut. Nach einem Reboot ist der Kernel dann auch aktiv, was man mit:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">uname -r
</span></span></code></pre></td></tr></table>
</div>
</div><p>überprüfen kann.</p>
<p>Normalerweise wird der Bootloader auch direkt konfiguriert, sodass man rein theoretisch nichts mehr machen müssen, sofern man direkten Rechnerzugang hat. Denn wenn der Rechner nicht hochkommen sollte, kann man ja bei physikalischen Zugriff den alten Kernel im Bootloader wieder auswählen. Wenn man jedoch so wie ich nur Serverkernel austauscht, sollte man ein paar arbeiten am Bootloader mehr vornehmen, was im dritten Teil des Tutorials erklärt wird.</p>
<p>Nachdem wir nun in den beiden ersten Teilen den Kernel kompiliert haben, führen wir nun einige Änderungen am Bootloader durch.</p>
<p>Normalerweise wird der Bootloader auch direkt konfiguriert, sodass man rein theoretisch nichts mehr machen müssen, sofern man direkten Rechnerzugang hat. Denn wenn der Rechner nicht hochkommen sollte, kann man ja bei physikalischen Zugriff den alten Kernel im Bootloader wieder auswählen.</p>
<p>Da ich aber ausschließlich mit Servern zu tun habe, sollte der folgende Vorgang durchgeführt werden, um ein &ldquo;nicht-hochkommen&rdquo; der Servers zu verhindern bzw ohne Rescue-System wieder zum laufen zu bekommen.
Ich gehe dabei ausschließlich auf den Boot-Loader LILO ein!
Zunächst wird die Konfiguration des Bootloaders editiert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /etc/lilo.conf
</span></span></code></pre></td></tr></table>
</div>
</div><p>Darin findet man die Konfigurationen die LILO benötigt, in meinem Fall sieht dies so aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">lba32
</span></span><span class="line"><span class="cl"><span class="nv">boot</span><span class="o">=</span>/dev/sda
</span></span><span class="line"><span class="cl"><span class="nv">root</span><span class="o">=</span>/dev/sda2
</span></span><span class="line"><span class="cl"><span class="nv">install</span><span class="o">=</span>/boot/boot-menu.b
</span></span><span class="line"><span class="cl"><span class="nv">map</span><span class="o">=</span>/boot/map
</span></span><span class="line"><span class="cl"><span class="nv">delay</span><span class="o">=</span><span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="nv">vga</span><span class="o">=</span>normal
</span></span><span class="line"><span class="cl"><span class="nv">append</span><span class="o">=</span><span class="s2">&#34;noapic acpi=off&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nv">default</span><span class="o">=</span>Linux
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">image</span><span class="o">=</span>/vmlinuz
</span></span><span class="line"><span class="cl"> <span class="nv">label</span><span class="o">=</span>Linux
</span></span><span class="line"><span class="cl"> read-only
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">image</span><span class="o">=</span>/vmlinuz.old
</span></span><span class="line"><span class="cl"> <span class="nv">label</span><span class="o">=</span>LinuxOLD
</span></span><span class="line"><span class="cl"> read-only
</span></span><span class="line"><span class="cl"> optional
</span></span></code></pre></td></tr></table>
</div>
</div><p>Hierbei ist das schon die neue Konfiguration wie sie von Debian nach der Kernelinstallation geschrieben wurde. &ldquo;Linux&rdquo; ist hierbei Kernel 2.6.16.16 und &ldquo;LinuxOLD&rdquo; der alte, aber sicher funktionstüchtige Kernel.
Nun ändert man die folgende Zeile:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">default</span><span class="o">=</span>Linux
</span></span></code></pre></td></tr></table>
</div>
</div><p>in die Version des alten Kernels:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">default</span><span class="o">=</span>LinuxOLD
</span></span></code></pre></td></tr></table>
</div>
</div><p>und speichert. Nun muss man noch einmal:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">lilo
</span></span></code></pre></td></tr></table>
</div>
</div><p>eingeben um dann folgendes zu sehen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">server:~# lilo
</span></span><span class="line"><span class="cl">Added Linux
</span></span><span class="line"><span class="cl">Added LinuxOLD *
</span></span></code></pre></td></tr></table>
</div>
</div><p>Der Eintrag wo nun das Sternchen ist, ist hierbei dann der Default-Boot-Kernel. Nun fragen sie sich sicher schon, warum ich einen neuen Kernel baue und dann aber doch den alten booten möchte. Der Trick kommt nun:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">lilo -R <span class="o">(</span>NEUERKERNELEINTRAG<span class="o">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>wobei (NEUERKERNELEINTRAG) durch das Label, das verwendet wurde (hier: &ldquo;label=Linux&rdquo;, also &ldquo;Linux&rdquo;) ersetzt werden muss (also in diesem Fall: &ldquo;lilo -R Linux&rdquo;)
Nun wird NUR beim nächsten Neustart der neue Kernel gebootet. Sollte dieser Boot fehlschlagen(server kommt nach Wartezeit nicht online), so kann mit einem Remote-Reset der Server neu gebootet werden, woraufhin dieser in den alten Kernel bootet. Wenn dies eintritt, so sollte der Fehler zunächst in der Network-Konfiguration gesucht werden(Aktivert mit dem korrekten Treiber?).
Sollte der Start erfolgreich verlaufen sein, so muss nun die LILO-Config zurückgeändert werden, die Zeile
&ldquo;default=Linux&rdquo; sollte wieder statt &ldquo;default=LinuxOLD&rdquo; eingesetzt werden. Nun nicht vergessen wieder &ldquo;lilo&rdquo; in der Kommandozeile einzugeben um dem Bootloader die neue Config bekannt zu geben. Die Ausgabe sollte dann wieder so aussehen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">server:~# lilo
</span></span><span class="line"><span class="cl">Added Linux *
</span></span><span class="line"><span class="cl">Added LinuxOLD
</span></span></code></pre></td></tr></table>
</div>
</div><p>Gratulation, der Server-Kernel ist nun auf dem neuesten Stand!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Linux: Größe aller Unterverzeichnisse eines Ordners sortiert für die erste Ebene ausgeben lassen</title>
      
      
      <link>https://wolf-u.li/linux-groesse-aller-unterverzeichnisse-eines-ordners-sortiert-fuer-die-erste-ebene-ausgeben-lassen/</link>
      <pubDate>Sun, 30 Nov 2008 15:34:05 +3000</pubDate>
      <guid>https://wolf-u.li/linux-groesse-aller-unterverzeichnisse-eines-ordners-sortiert-fuer-die-erste-ebene-ausgeben-lassen/</guid>
      <description>&lt;p&gt;Oft möchte man ja wissen, in welchem Ordner Dateileichen liegen oder in welchem Ordner besonders viel Speicherplatz verbraucht wird. So habe ich soeben mal wieder auf dem Server nachgesehen, welches meiner Verzeichnisse vielleicht mal überarbeitet gehört.
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
Bisher habe ich die einzelnen Ordner mittels &lt;code&gt;du --si --summarize&lt;/code&gt; angesehen, wobei das bei vielen Ordner ziemlich viel Arbeit ist. Wie immer kann man sich das unter Linux vereinfachen.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Oft möchte man ja wissen, in welchem Ordner Dateileichen liegen oder in welchem Ordner besonders viel Speicherplatz verbraucht wird. So habe ich soeben mal wieder auf dem Server nachgesehen, welches meiner Verzeichnisse vielleicht mal überarbeitet gehört.
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
Bisher habe ich die einzelnen Ordner mittels <code>du --si --summarize</code> angesehen, wobei das bei vielen Ordner ziemlich viel Arbeit ist. Wie immer kann man sich das unter Linux vereinfachen.</p>
<p>Mit der folgenden Zeile:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">du . -h --max-depth<span class="o">=</span>1<span class="p">|</span>sort -h
</span></span></code></pre></td></tr></table>
</div>
</div><p>kann man sich im aktuellen Verzeichnis die erste Ebene inklusive des verbrauchten Speicherplatzes ausgeben lassen, wobei die Größe der jeweiligen Unterordner berücksichtigt wird.</p>
<p><strong>Notiz</strong>: Das Flag <code>-h</code> gibt es bei <code>sort</code> erst ab GNU coreutils 7.5 (Release war im August 2009) und erlaubt einen Vergleich menschenlesbaren Größen (wie 2K oder 1G).</p>
<p>Meine bisherige Lösung funktioniert nur manchmal, aber liste ich mal der Vollständgkeit halber mit auf:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">find . -maxdepth <span class="m">1</span> -type d -print <span class="p">|</span> xargs du -sk <span class="p">|</span> sort -rn
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn man nun auf der Suche nach Verbrauchern von Speicherplatz ist, lohnt es sich oft auch, sich das in einer einfachen Oberfläche mit der Möglichkeit von Löschen etc. anzusehen. Hierfür nutze ich das Tool &ldquo;<link rel=dns-prefetch href=//github.com /> <a href="https://github.com/dundee/gdu"
    title="gdu" 
     target="_blank" rel="nofollow noopener noreferrer" >
  gdu&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo;, welches das wunderbar erlaubt.</p>
<p>Nach der <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/dundee/gdu?tab=readme-ov-file#installation#installation"
    title="Installation" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Installation&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> habe ich zunächst konfiguriert, dass ich Löschen parallel im Hintergrund machen möchte. Dazu schreibe ich die Config in mein <em>gdu</em> config file wodurch diese auch für das nächste Mal direkt vorhanden ist:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p <span class="nv">$HOME</span>/.config/gdu/
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;delete-in-background: true&#34;</span> &gt;&gt; <span class="nv">$HOME</span>/.config/gdu/gdu.yaml
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;delete-in-parallel: true&#34;</span> &gt;&gt; <span class="nv">$HOME</span>/.config/gdu/gdu.yaml
</span></span></code></pre></td></tr></table>
</div>
</div><p>Anschließend rufe ich das tool auf (z.b. via <code>/usr/bin/gdu</code>) und sortiere nach Größe (<keyb>s</keyb>). Nun kann ich mittels der Pfeiltasten durch die verzeichnisse navigieren und via <keyb>d</keyb> einzelne Verzeichnisse oder Dateien löschen. Da dies dann im Hintergrund passiert kann ich direkt weitersehen, jedoch sollte man das tool erst beenden, wenn am unteren Bildschirmrand dann alle Prozesse abgearbeitet sind.</p>
]]></content:encoded>
    </item>
    <item>
      <title>HLStats auf einem &#34;blanken&#34; Server installieren</title>
      
      
      <link>https://wolf-u.li/hlstats-auf-einem-blanken-server-installieren/</link>
      <pubDate>Tue, 13 Jun 2006 11:37:55 +1300</pubDate>
      <guid>https://wolf-u.li/hlstats-auf-einem-blanken-server-installieren/</guid>
      <description>&lt;p&gt;Wenn man Real-Time-Statistiken von Half-Life-Servern haben will, so nimmt man am besten &amp;ldquo;&lt;link rel=dns-prefetch href=//sourceforge.net /&gt; &lt;a href=&#34;http://sourceforge.net/projects/hlstats/&#34;
    title=&#34;HLStats&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  HLStats&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;&amp;rdquo;. Ich zitiere mal aus der &lt;link rel=dns-prefetch href=//docs.unitedadmins.com /&gt; &lt;a href=&#34;http://docs.unitedadmins.com/hlstats/german/&#34;
    title=&#34;Dokumentation&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Dokumentation&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wenn man Real-Time-Statistiken von Half-Life-Servern haben will, so nimmt man am besten &ldquo;<link rel=dns-prefetch href=//sourceforge.net /> <a href="http://sourceforge.net/projects/hlstats/"
    title="HLStats" 
     target="_blank" rel="nofollow noopener noreferrer" >
  HLStats&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo;. Ich zitiere mal aus der <link rel=dns-prefetch href=//docs.unitedadmins.com /> <a href="http://docs.unitedadmins.com/hlstats/german/"
    title="Dokumentation" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Dokumentation&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>:</p>
<blockquote>
<p>HLstats besteht aus einem Perl Script (die HLstats logging Daemon) und aus einem Set von PHP Scripts (welche die gewonnenen Daten als Webseite anzeigen). HLstats bietet Statistiken für den einzelnen Spieler sowie auch für den ganzen Clan.</p>
</blockquote>
<p>Meine Ausgangslage</p>
<ul>
<li>&ldquo;Blanker&rdquo; Server (Keinerlei MySQL oder Apache2)</li>
<li>Debian 3.1 Sarge Stable</li>
<li><link rel=dns-prefetch href=//prdownloads.sourceforge.net /> <a href="http://prdownloads.sourceforge.net/hlstats/hlstats-1.34.tar.gz?download"
    title="HLStats 1.34" 
     target="_blank" rel="nofollow noopener noreferrer" >
  HLStats 1.34&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
<p>Folgende Packete werden zunächst in der Konsole installiert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt-get install apache2 libapache2-mod-php4 wget libdbi-perl libdbd-mysql-perl libdbd-mysql mysql-server mysql-common ncftp lynx php4-mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nachdem das alles installiert ist, muss man Perl konfigurieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">perl -MCPAN -e shell
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun werden ein Haufen Fragen gestellt, eigentlich ist aber davon nur die Frage nach den Downloadservern am Ende wirklich wichtig.
Am Ende öffnet sich ein CPAN-Prompt in dem man nun noch die Module initialisieren sollte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cpan&gt; install Bundle::DBI
</span></span><span class="line"><span class="cl">cpan&gt; install Bundle::DBD::mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Perl ist nun soweit fertig.</p>
<p>Nun brauchen wir zunächst HLStats. Ich installiere den Perl-Server von HLStats in <em>/home/hlstats/</em>, weshalb ich nun dort zunächst die Files entpacke(Ich sauge immer von Switch, die URL ist natürlich gegen andere Mirrors austauschbar ;)):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget http://switch.dl.sourceforge.net/sourceforge/hlstats/hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /home/
</span></span><span class="line"><span class="cl">tar xzvf hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl">mv hlstats-1.34 hlstats
</span></span><span class="line"><span class="cl">rm hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> hlstats
</span></span></code></pre></td></tr></table>
</div>
</div><p><img src="/upload/2006/06/699-hlstats_diagram.gif" alt="HLStats Serverstruktur" loading="lazy"></p>
<p>HLStats loggt über einen Perl-Server, der normalerweise auf Port 27500 &ldquo;lauscht&rdquo;, in eine normale MySQL-Datenbank, was die nebenstehende Server-Struktur ermöglicht. Viele einzelne Gameserver können so auf einen einzigen MySQL-Server(dieser wäre über eine Datenbank-Replikation auch wieder einfach zu sichern) loggen, wodurch die Statistiken dann einfach über eine Seite abrufbar sind. Das Frontend ist wiederum in PHP mit einzelnen Templates geschrieben, was eine Anpassung nicht besonders schwer macht.</p>
<p>Nun muss HLStats noch in die MySQL-Datenbank eingefügt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mysql admin create hlstats
</span></span><span class="line"><span class="cl">mysql hlstats &lt; hlstats.sql
</span></span><span class="line"><span class="cl">mysql hlstats &lt; gamesupport_XXYYXX.sql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dies kann nur im Verzeichnis des entpackten Archives ausgeführt werden.</p>
<p>XXYYXX muss hierbei durch das Spiel, welches man benötigt ersetzt werden, also z.b.:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mysql hlstats &lt; gamesupport_css.sql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Weitere Support-Files bekommen sie hier. (Hinweis: HLstats unterstuetzt nur Spiele mit dem Half-Life Log Format.)</p>
<p>Nachdem die Spieldaten und die Haupt-SQL-Files in der Datenbank gelandet sind, müssen wir nun noch die User anlegen, die auf diese Datenbank zugreifen dürfen</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">shell&gt; mysql --user<span class="o">=</span>root mysql
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">hlstats</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="s1">&#39;hlstats&#39;</span><span class="o">@</span><span class="s1">&#39;localhost&#39;</span><span class="w"> </span><span class="n">IDENTIFIED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="s1">&#39;somepassword&#39;</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Das erste HLStats ist der Databasename und das zweite HLStats ist der Benutzername der erstellt wird. (Hinweis: &lsquo;somepassword&rsquo; sollte natürlich durch ein anderes ersetzt werden, also z.b. &lsquo;Mju5mkfOP5QCVlgY&rsquo;)</p>
<p>Zur Absicherung des RooT-Users müssen wir dessen Passwort ändern(wird von MySQL übrigends als eine der <link rel=dns-prefetch href=//dev.mysql.com /> <a href="http://dev.mysql.com/doc/refman/5.1/de/default-privileges.html"
    title="ersten Aktionen empfohlen" 
     target="_blank" rel="nofollow noopener noreferrer" >
  ersten Aktionen empfohlen&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>). In der MySQL-Console muss daher folgendes eingegeben werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">UPDATE</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">Password</span><span class="o">=</span><span class="n">PASSWORD</span><span class="p">(</span><span class="s1">&#39;someotherpassword&#39;</span><span class="p">)</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">user</span><span class="o">=</span><span class="s1">&#39;root&#39;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">FLUSH</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">quit</span><span class="p">;</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>(Hinweis: &lsquo;someotherpassword&rsquo; sollte natürlich auch hier durch ein anderes ersetzt werden, also z.b. &lsquo;5QCVlgYMju5mkfOP&rsquo;)</p>
<p>Der folgende Abschnitt wurde in der Dokumentation als Kompatibilitäts-Sache angegeben, damit Perl korrekt mit dem Frontend arbeitet:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">shell&gt; mysql --user<span class="o">=</span>root -p mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun werden sie nach dem oben vergebenen root-Passwort gefragt. Nach Eingabe dieses Passworts fügen sie die folgende Zeile ein. Hierbei muss &lsquo;/hlstats/hlstats.php&rsquo; durch das Verzeichnis (relativ zum Webroot) ersetzt werden, in dem sich &ldquo;hlstats.php&rdquo; befindet. Wenn HLStats sich im &lsquo;/stats&rsquo;-Ordner befindet, muss man &lsquo;/stats/hlstats/hlstats.php&rsquo; verwenden. Wenn sie hlstats über &ldquo;<link rel=dns-prefetch href=//example.com /> <a href="http://example.com/hlstats/hlstats.php%22"
    title="http://example.com/hlstats/hlstats.php&#34;" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://example.com/hlstats/hlstats.php"&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> erreichen, dann ist die folgende Angabe richtig.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">hlstats_Options</span><span class="w"> </span><span class="p">(</span><span class="n">keyname</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;scripturl&#39;</span><span class="p">,</span><span class="s1">&#39;/hlstats/hlstats.php&#39;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">quit</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Nun ist die Datenbankseitige Installation soweit fertig. Wenden wir uns der Installation des Webfrontends zu. Ich gehe davon aus, dass auf dem Server nichts anderes ausser HLStats und die Gameserver laufen, daher ist bei mir das Webserver-Root-Verzeichnis (<em>/var/www/</em>) gleich dem hlstatsverzeichnis:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /home/hlstats/
</span></span><span class="line"><span class="cl">mv hlstats.php /var/www/
</span></span><span class="line"><span class="cl">mv hlstatsimg /var/www/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun gibts natürlich wie immer ein kleines Rechte-Problem, welches sind einfach lösen lässt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">useradd -s /bin/bash -p PASSWORD hlstats
</span></span></code></pre></td></tr></table>
</div>
</div><p>PASSWORD muss natürlich wieder ersetzt werden!
nun noch ein:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chown -R hlstats:users /home/hlstats/
</span></span><span class="line"><span class="cl">chown -R hlstats:users /var/www/hlstats.php
</span></span><span class="line"><span class="cl">chown -R hlstats:users /home/hlstatsinc/
</span></span></code></pre></td></tr></table>
</div>
</div><p>und die Verzeichnisse gehören dem Nutzer.</p>
<p>Der Webserver leitet momentan beim Aufruf der IP noch direkt auf &ldquo;apache2-default&rdquo; weiter, was wir natürlich nicht wollen. Also müssen wir die Konfigurationsdatei ändern:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /etc/apache2/sites-enabled/000-default
</span></span></code></pre></td></tr></table>
</div>
</div><p>Suche:  <code>RedirectMatch ^/$ /apache2-default/</code>
Ersetze:  <code># RedirectMatch ^/$ /apache2-default/</code></p>
<p>Damit ist nun sichergestellt, dass bei Aufruf der IP direkt die Dateien aus <em>/var/www/</em> aufgerufen werden. Wenn man dies aber nun tut, dann stellt man fest, dass nur das Verzeichnis aufgelistet wird. Problem ist, dass Apache noch nicht weiss, dass er nun die hlstats.php aufrufen soll. Nun gibt es zwei Wege:</p>
<ol>
<li>Umleitung via HTML/PHP-Datei</li>
<li>Umleitung via .htaccess</li>
</ol>
<p>Ich habe mich für den ersten Weg entschieden und eine <em>index.php</em> erstellt, die folgenden Inhalt hat:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="o">&lt;?</span> <span class="nx">header</span><span class="p">(</span><span class="s2">&#34;location: hlstats.php&#34;</span><span class="p">);</span><span class="k">exit</span><span class="p">();</span> <span class="cp">?&gt;</span><span class="err">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Funktioniert perfekt.</p>
<p>Nun muss man die Datenbankverbindungen einrichten. Dazu editiert man die beiden Dateien, die damit überhaupt zu tun haben:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /home/hlstats/hlstats.conf
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>Eintragen von Datenbankdaten</li>
<li>Eventuelle weitere Änderungen anhand der Kommentare durchführen</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /var/www/hlstats.php
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>Eintragen von Datenbankdaten</li>
<li>INCLUDE_PATH anpassen, in diesem Fall <em>/home/hlstats/hlstatsinc</em></li>
<li>Eventuelle weitere Änderungen anhand der Kommentare durchführen</li>
</ul>
<p>Wenn dies alles erledigt ist, dann steht dem ersten Start des Servers nix mehr im Wege:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">screen -R hlstats
</span></span><span class="line"><span class="cl">su hlstats
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /home/hlstats/
</span></span><span class="line"><span class="cl">chmod <span class="m">700</span> -R *
</span></span><span class="line"><span class="cl"><span class="k">while</span> true<span class="p">;</span> <span class="k">do</span> nohup ./hlstats.pl<span class="p">;</span> sleep 5<span class="p">;</span> <span class="k">done</span> <span class="p">&amp;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun sollte der Perl-Server gestartet sein, mit &ldquo;<keyb>STRG</keyb>+ <keyb>a</keyb>&rdquo; &amp; anschließendem Druck von &ldquo;<keyb>D</keyb>&rdquo; bringen sie den Screen in den Hintergrund.</p>
<p>Sofern sie nix an der Port-Konfiguration geändert haben, sollte nun auf Port 27500 ein HLStats-Server lauschen.</p>
<p>PHP hat zunächst keine Ahnung davon, dass MySQL installiert ist, was wir nun schnell ändern:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /etc/php4/apache2/php.ini
</span></span></code></pre></td></tr></table>
</div>
</div><p>Finde: <code>;extension=mysql.so</code>
Ersetze: <code>extension=mysql.so</code>
Anschließend ein <code>/etc/init.d/apache2 restart</code> und PHP weiss, dass MySQL installiert ist.</p>
<p><img src="/upload/2006/06/699-hlstats_001.webp" alt="Erste Ansicht" loading="lazy"></p>
<p>Nun rufen wir mal das Webfrontend auf. Nach Eingabe der ServerIP / einer darauf zeigenden Domain sollte sich in etwa das nebenstehende Bild ergeben. (Ich habe schon ein paar Server konfiguriert und schon die Templates ein wenig geändert.) Nun klicken wir in der Mitte unten auf Admin und loggen uns das erste mal ein. Die Daten hierzu sind:</p>
<ul>
<li>User: admin</li>
<li>Passwort: 123456</li>
</ul>
<p>Sobald sie sich eingeloggt haben, gehen sie auf <em>Admin Users</em> und fügen sie einen neuen Admin hinzu. Löschen sie nun den User &ldquo;admin&rdquo; (Erst wenn sie den neuen Admin hinzugefügt haben!) und loggen sie sich mit ihrem neuen Admin ein.</p>
<p>Nun können sie nach belieben konfigurieren, neue Server fügt man unter <em>Game Settings</em> unter dem jeweiligen Spiel hinzu, was relativ intuitiv gemacht ist.</p>
<p>Auf den Gameservern muss man in der autoexec.cfg folgendes hinzufügen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">log on
</span></span><span class="line"><span class="cl">logaddress 1.2.3.4 <span class="m">27500</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>wobei 1.2.3.4 für ihre Serveradresse steht. Anschließend den Gameserver restarten und mal drauf zocken. Wenn die Stats angezeigt werden ist alles korrekt gelaufen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Apache Fehler: pcfg_openfile Fehler 13 beheben</title>
      
      
      <link>https://wolf-u.li/apache-fehler-pcfg_openfile-fehler-13-beheben/</link>
      <pubDate>Mon, 22 May 2006 11:37:49 +2200</pubDate>
      <guid>https://wolf-u.li/apache-fehler-pcfg_openfile-fehler-13-beheben/</guid>
      <description>&lt;p&gt;Heute hatte eine meiner Domains auf einmal nicht mehr funktioniert, wofür ich zunächst keine Erklärung finden konnte. Bei jedem Aufruf kam nur eine Fehlerseite zurück, mit der Meldung dass der Zugriff nicht erlaubt ist oder kein Indexdokument vorhanden sein.&lt;/p&gt;
&lt;p&gt;Da aber beides meines Erachtens nicht zutreffen sollte, machte ich mich also auf die Suche und traf in den error-Logs des Apache2-Webservers auf folgenden Fehler:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;Mon May &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt; 10:52:42 2006&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;crit&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;client 123.123.123.123&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;13&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;Permission denied: /var/www/XXX/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Einige Elemente dieser Fehlermeldung sind von mir gelöscht worden&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute hatte eine meiner Domains auf einmal nicht mehr funktioniert, wofür ich zunächst keine Erklärung finden konnte. Bei jedem Aufruf kam nur eine Fehlerseite zurück, mit der Meldung dass der Zugriff nicht erlaubt ist oder kein Indexdokument vorhanden sein.</p>
<p>Da aber beides meines Erachtens nicht zutreffen sollte, machte ich mich also auf die Suche und traf in den error-Logs des Apache2-Webservers auf folgenden Fehler:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="o">[</span>Mon May <span class="m">22</span> 10:52:42 2006<span class="o">]</span> <span class="o">[</span>crit<span class="o">]</span> <span class="o">[</span>client 123.123.123.123<span class="o">]</span> <span class="o">(</span>13<span class="o">)</span>Permission denied: /var/www/XXX/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
</span></span></code></pre></td></tr></table>
</div>
</div><p>Einige Elemente dieser Fehlermeldung sind von mir gelöscht worden</p>
<p>Wie sich erkennen lässt, &ldquo;mault&rdquo; der Apache wegen einer .htaccess, die seines Erachtens nicht lesbar ist. Nun habe ich also eine solche überhaupt nicht in diesem Verzeichnis, was seltsam war. Ich habe dann eine .htaccess angelegt, die einfach mal testweise auf &ldquo;chmod 777&rdquo; gesetzt, der Fehler ist jedoch trotzdem nicht verschwunden.</p>
<p>Nach einer intensiven Befragung von Google bin ich schlussendlich darauf gekommen, dass es ein rechte Problem zu sein scheint. Apache hat nur schlicht und einfach keinen Zugriff auf das GANZE verzeichnis gehabt. Nach einem Vergleich mit dem Verzeichnis einer anderen Domain und der anschließenden neuen Rechtevergabe funktionierte wieder alles so, wie es sollte. Es waren wohl aus Versehen falsche Benutzerrechte gesetzt worden.</p>
<p>Ob der Apache auf ein Verzeichnis zugreifen kann, lässt sich sehr schnell und unkompliziert feststellen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">su - www-data -s /bin/bash -c <span class="s2">&#34;cd /var/www/XXX/html; ls -la&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wenn der Befehl ein &ldquo;Permission denied&rdquo; ausgibt, dann hat der Webserver definitiv keinen Zugriff auf das Verzeichnis. &ldquo;www-data&rdquo; ist hierbei der Nutzer des Webservers, und &ldquo;/var/www/XXX/html&rdquo; das verzeichnis.</p>
<p>Vielleicht hilfts ja jemandem bei der Fehlersuche :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>LibSSH2 auf Debian 3.1 mit Apache2 und PHP4 einrichten &amp; PECL-SSH2 installieren</title>
      
      
      <link>https://wolf-u.li/libssh2-auf-debian-31-mit-apache2-und-php4-einrichten-pecl-ssh2-installieren/</link>
      <pubDate>Sat, 24 Jun 2006 11:37:46 +2400</pubDate>
      <guid>https://wolf-u.li/libssh2-auf-debian-31-mit-apache2-und-php4-einrichten-pecl-ssh2-installieren/</guid>
      <description>&lt;p&gt;Heute hatte ich mich im Zuge einer kleinen Programmieraktion in PHP mit SSH2 auseinandersetzen müssen. Da dies standartmäßig nicht integriert ist, habe ich also ein wenig geforscht und bin schlussendlich auf die Möglichkeit einer Installation via PECL gestossen.&lt;/p&gt;
&lt;p&gt;Meine Ausgangslage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debian 3.1 Sarge&lt;/li&gt;
&lt;li&gt;PHP4&lt;/li&gt;
&lt;li&gt;Apache2.0&lt;/li&gt;
&lt;li&gt;Commandozeilenzugriff&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Installation gestaltet sich denkbar einfach, zunächst muss man OpenSSL installieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt-get install openssl-dev openssl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Nachdem dies geschehen ist muss man nun die LibSSH2 installieren, für die es kein Debian-Package gibt. Daher muss man zunächst das neueste &lt;link rel=dns-prefetch href=//sourceforge.net /&gt; &lt;a href=&#34;http://sourceforge.net/project/showfiles.php?group_id=125852&#34;
    title=&#34;Packet von Sourceforge&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Packet von Sourceforge&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; holen und damit folgendes machen(hier am Beispiel der Version 2.0.13):&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute hatte ich mich im Zuge einer kleinen Programmieraktion in PHP mit SSH2 auseinandersetzen müssen. Da dies standartmäßig nicht integriert ist, habe ich also ein wenig geforscht und bin schlussendlich auf die Möglichkeit einer Installation via PECL gestossen.</p>
<p>Meine Ausgangslage:</p>
<ul>
<li>Debian 3.1 Sarge</li>
<li>PHP4</li>
<li>Apache2.0</li>
<li>Commandozeilenzugriff</li>
</ul>
<p>Die Installation gestaltet sich denkbar einfach, zunächst muss man OpenSSL installieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt-get install openssl-dev openssl
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nachdem dies geschehen ist muss man nun die LibSSH2 installieren, für die es kein Debian-Package gibt. Daher muss man zunächst das neueste <link rel=dns-prefetch href=//sourceforge.net /> <a href="http://sourceforge.net/project/showfiles.php?group_id=125852"
    title="Packet von Sourceforge" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Packet von Sourceforge&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> holen und damit folgendes machen(hier am Beispiel der Version 2.0.13):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">tar xfvz libssh2-0.13.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> libssh2-0.13
</span></span><span class="line"><span class="cl">./configure <span class="o">&amp;&amp;</span> make all install
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun ist libSSH2 zur Verwendung bereit. Jetzt kann man via PECL die extension ssh2 installieren. Da es derzeit keine <em>stable</em> Version des ssh2-Packet gibt, muss man die Beta installieren(Zusätzliche Informationen, wie neue Releases, Downloads Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: <link rel=dns-prefetch href=//pecl.php.net /> <a href="http://pecl.php.net/package/ssh2"
    title="http://pecl.php.net/package/ssh2" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://pecl.php.net/package/ssh2&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pecl install ssh2-beta
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun sollte PECL sich melden wohin es SSH2 installiert hat (bei mir war es glaube ich <em>/usr/share/php4/</em>, aber das is von Installation zu Installation unterschiedlich). Dieses Verzeichnis sollte man mal besuchen, wenn man sich nicht sicher ist, ob es das in der PHP.ini angegebene &ldquo;extension_dir&rdquo;-Verzeichnis ist. Sollte sich darin nur eine ssh2.so finden lassen, so sollten sie mal die php.ini konsultieren(<em>cat /etc/php4/apache2/php.ini | grep extension_dir</em>), evtl liegt das <em>extension_dir</em> woanders. Entsprechen muss natürlich die <em>ssh2.so</em> woanders(also in extension_dir) hinkopiert werden.</p>
<p>Nun öffnet man die php.ini, welche sich bei debian unter <em>/etc/php4/apache2/php.ini</em> finden lässt und fügt folgende Zeile entweder am Ende, oder einer geeigneten anderen stelle hinzu:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">extension</span><span class="o">=</span>ssh2.so
</span></span></code></pre></td></tr></table>
</div>
</div><p>Normalerweise sollte sich nun nach einem Restart des Webservers die SSH2-Extension in <em>phpinfo();</em> finden lassen.</p>
<p>Und fertig ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Zend Optimizer Version 3.0.1 installieren</title>
      
      
      <link>https://wolf-u.li/zend-optimizer-version-301-installieren/</link>
      <pubDate>Thu, 13 Jul 2006 11:37:11 +1300</pubDate>
      <guid>https://wolf-u.li/zend-optimizer-version-301-installieren/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2006/07/704-Zend_php.gif&#34; alt=&#34;Zend&#34; loading=&#34;lazy&#34;&gt;Da ich aufgrund eine Scriptes den Zend Optimizer mal wieder auf den neuesten Stand bringen musste, habe ich das hier mal direkt mitdokumentiert. Die derzeit aktuelle Version ist 3.0.1, welche nur auf PHP-Versionen größer als 4.0.4 läuft. Das Update / Die Installation verläuft vollkommen automatisch mit Hilfe eines Scriptes.Was ist aber eigentlich ZendOptimizer? Die &lt;link rel=dns-prefetch href=//de.wikipedia.org /&gt; &lt;a href=&#34;http://de.wikipedia.org/wiki/Zend_Technologies&#34;
    title=&#34;Wikipedia&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Wikipedia&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; sagt dazu:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><img src="/upload/2006/07/704-Zend_php.gif" alt="Zend" loading="lazy">Da ich aufgrund eine Scriptes den Zend Optimizer mal wieder auf den neuesten Stand bringen musste, habe ich das hier mal direkt mitdokumentiert. Die derzeit aktuelle Version ist 3.0.1, welche nur auf PHP-Versionen größer als 4.0.4 läuft. Das Update / Die Installation verläuft vollkommen automatisch mit Hilfe eines Scriptes.Was ist aber eigentlich ZendOptimizer? Die <link rel=dns-prefetch href=//de.wikipedia.org /> <a href="http://de.wikipedia.org/wiki/Zend_Technologies"
    title="Wikipedia" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Wikipedia&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> sagt dazu:</p>
<blockquote>
<p>Zend Optimizer ist eine Laufzeitumgebung, die PHP-Anwendungen laut Herstellerangaben um bis zu 40 % beschleunigen kann und des weiteren für die Ausführung von mit Zend Guard geschützten PHP-Dateien benötigt wird. Die Software optimiert den Quelltext vor der Kompilierung durch den PHP-Interpreter und vermindert so die Last des Servers. Der Zend Optimizer ist kostenlos verfügbar und bei den meisten Webhosting-Anbietern vorinstalliert.</p>
</blockquote>
<p>Und da ich mein eigener Hoster bin, muss ich das eben selbst machen ;)</p>
<p>Die neueste Version muss man sich bei Zend herunterladen, wofür eine Anmeldung benötigt wird. Der folgende Artikel wurde mit der x86 Version des Zend Optimizers geschrieben, daher sind auch die URL&rsquo;s und verzeichnisse auf x86 ausgelegt.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /usr/src
</span></span><span class="line"><span class="cl">wget http://downloads.zend.com/optimizer/3.0.1/ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
</span></span><span class="line"><span class="cl">tar xvzf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> ZendOptimizer-3.0.1-linux-glibc21-i386
</span></span><span class="line"><span class="cl">./install.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun kommen einige Anweisungen vom script, die man in der Regel mit OK beantworten kann, ausser bei der php.ini-Frage, da sollte man nochmal schauen, ob das so passt. Am Ende sollte der Apache neu gestartet werden.</p>
<p>Das wars erstmal, zum Überprüfen sollte man kurz die php.ini ansehen, bei der irgendwo folgendes stehen sollte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-ini" data-lang="ini"><span class="line"><span class="cl"><span class="k">[Zend]</span>
</span></span><span class="line"><span class="cl"><span class="na">zend_extension_manager.optimizer</span><span class="o">=</span><span class="s">/usr/local/Zend/lib/Optimizer-3.0.1</span>
</span></span><span class="line"><span class="cl"><span class="na">zend_extension_manager.optimizer_ts</span><span class="o">=</span><span class="s">/usr/local/Zend/lib/Optimizer_TS-3.0.1</span>
</span></span><span class="line"><span class="cl"><span class="na">zend_optimizer.version</span><span class="o">=</span><span class="s">3.0.1</span>
</span></span><span class="line"><span class="cl"><span class="na">zend_extension</span><span class="o">=</span><span class="s">/usr/local/Zend/lib/ZendExtensionManager.so</span>
</span></span><span class="line"><span class="cl"><span class="na">zend_extension_ts</span><span class="o">=</span><span class="s">/usr/local/Zend/lib/ZendExtensionManager_TS.so</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Zum weiteren Ãœberprüfen sollte man mal die Ausgabe von phpinfo anschauen. Dazu schreibt man in eine PHP-Datei:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="o">&lt;?</span>
</span></span><span class="line"><span class="cl"><span class="nx">phpinfo</span><span class="p">();</span>
</span></span><span class="line"><span class="cl"><span class="cp">?&gt;</span><span class="err">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>und ruft diese dann auf. Die Ausgabe sollte unter dem ersten großen Kasten dann einen kleinen Kasten mit dem Zend-Logo und dem folgenden Text ausgeben:</p>
<blockquote>
<p>This program makes use of the Zend Scripting Language Engine:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by <strong>Zend Technologies with Zend Optimizer v3.0.1</strong>, Copyright (c) 1998-2006, by Zend Technologies</p>
</blockquote>
<p>Das wars :)</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
