<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: C-shell history</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html</link>
    <description>Помогите написать скрипт который будет сохранять историю ввода команд.&lt;br&gt;я создал в каталоге /home/user/ файл .logout:&lt;br&gt;&lt;br&gt;set HIS=&quot;$HOME/.his&quot;&lt;br&gt;if (! -e $HIS ) then&lt;br&gt;        touch $HIS&lt;br&gt;endif&lt;br&gt;echo &quot;##################################&quot; &amp;gt;&amp;gt; $HIS&lt;br&gt;date &amp;gt;&amp;gt; $HIS&lt;br&gt;echo &amp;#8220;who am i&amp;#8221; &amp;gt;&amp;gt; $HIS&lt;br&gt;who am i &amp;gt;&amp;gt; $HIS&lt;br&gt;echo &amp;#8220;who -R&amp;#8221; &amp;gt;&amp;gt; $HIS&lt;br&gt;who -R &amp;gt;&amp;gt; $HIS&lt;br&gt;history &amp;gt;&amp;gt; $HIS&lt;br&gt;&lt;br&gt;Он он работает только пока люди правильно выходят. А если Putty закрыть через крестик, то хистори никто не записывает.&lt;br&gt;Вариант set history=20 savehistory - отпадает сразу.&lt;br&gt;на машине еще стоит perl может  есть у кого идеи как запустить скрипт через .cshrc написанный на perl или чистом csh чтобы вести хистори команд отдельно от возможностей системы.&lt;br&gt;</description>

<item>
    <title>C-shell history (pavlinux)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#12</link>
    <pubDate>Thu, 04 Dec 2014 00:26:02 GMT</pubDate>
    <description>&amp;gt; ... но в нем косяк. если юзер понажимает ктрл+с то ...&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/bin/csh&lt;br&gt;&lt;br&gt;set LOG=&quot;$HOME/.his&quot;&lt;br&gt;&lt;br&gt;onintr -; # вы мануалы ваще читаете? &lt;br&gt;&lt;br&gt;while (1)&lt;br&gt;    while (1)&lt;br&gt;          echo -n &#096;hostname&#096; &apos;$&amp;gt; &apos;;&lt;br&gt;          set line = &quot;$&amp;lt; &quot;;&lt;br&gt;             if ( &quot;$line&quot; == &quot;&quot;) then&lt;br&gt;                break&lt;br&gt;             endif&lt;br&gt;&lt;br&gt;          who am i &amp;gt;&amp;gt;  $LOG;&lt;br&gt;          who -R &amp;gt;&amp;gt;  $LOG;&lt;br&gt;          echo &#096;date &quot;+ &#037;m/&#037;d/&#037;y &#037;H:&#037;M:&#037;S&quot;&#096;:&quot; $line&quot; &amp;gt;&amp;gt; $LOG;&lt;br&gt;          csh -c &quot;$line&quot;;&lt;br&gt;          break;&lt;br&gt;    end&lt;br&gt;end&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Но если юзеры продвинутые, то можно по колдовать с троянчиком, типа &lt;br&gt;&lt;br&gt;hostname $&amp;gt; kill -9 &#096;ps -o ppid=&#096;;&lt;br&gt;&lt;br&gt;9, 11, и 18 сигналы не перехватываются ничем, кроме ядра.&lt;br&gt;Парсер писать замучаешься, ибо вариантов тонна. &lt;br&gt;&lt;br&gt;А ещё можно бэкспейсами закидать лог, &lt;br&gt;А ещё можно тупа обнулить $&amp;gt; echo &amp;gt; $HOME/.his;&lt;br&gt;&lt;br&gt;Вариант (не геморройный) только один - прописать этот скрипт, как shell в /etc/passwd;&lt;br&gt;&lt;br&gt;От обнуления и затирания нужно подымать pipe/fifo, в него кидать логи и считывать другим демоном.&lt;br&gt;Мож на ваш</description>
</item>

<item>
    <title>C-shell history (Shinma)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#11</link>
    <pubDate>Wed, 03 Dec 2014 10:24:50 GMT</pubDate>
    <description>Последний вариант, но в нем косяк. если юзер понажимает ктрл+с то собственно хистори писаться не будет. обидно.&lt;br&gt;&lt;br&gt;#!/bin/csh&lt;br&gt;set LOG=&quot;$HOME/.his&quot;&lt;br&gt;&lt;br&gt;while (1)&lt;br&gt;while (1)&lt;br&gt;       echo &#096;hostname&#096; &apos;$&amp;gt; &apos;;&lt;br&gt;       set line = &quot;$&amp;lt; &quot;;&lt;br&gt;       if ( &quot;$line&quot; == &quot;&quot; ) then&lt;br&gt;            break&lt;br&gt;       endif&lt;br&gt;who am i &amp;gt;&amp;gt;  $LOG;&lt;br&gt;who -R &amp;gt;&amp;gt;  $LOG;&lt;br&gt;       echo &#096;date &quot;+ &#037;m/&#037;d/&#037;y &#037;H:&#037;M:&#037;S&quot;&#096;:&quot; $line&quot; &amp;gt;&amp;gt; $LOG;&lt;br&gt;       csh -c &quot;$line&quot;;&lt;br&gt;       break;&lt;br&gt;end&lt;br&gt;end&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (pavlinux)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#10</link>
    <pubDate>Wed, 26 Nov 2014 08:18:11 GMT</pubDate>
    <description>&amp;gt; В итоге код работает &lt;br&gt;&lt;br&gt;У тя точно C-shell ? :D &lt;br&gt;&lt;br&gt;Потому как &quot;while expr do ... done&quot; - это Bourne Shell (может ещё Korn).&lt;br&gt;В сsh это будет: while (expr) .... end; &lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/bin/csh&lt;br&gt;&lt;br&gt;set LOG=&quot;/tmp/ccsh.log&quot;&lt;br&gt;&lt;br&gt;while (1)&lt;br&gt;       echo -n &apos;$&amp;gt; &apos;;&lt;br&gt;       set line = &quot;$&amp;lt; &quot;;&lt;br&gt;       if ( &quot;$line&quot; == &quot;&quot; ) then&lt;br&gt;            break&lt;br&gt;       endif&lt;br&gt;&lt;br&gt;       echo &#096;date&#096;:&quot;$line&quot;;&lt;br&gt;       csh -c &quot;$line&quot;;&lt;br&gt;       break;&lt;br&gt;end&lt;br&gt;&#091;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (Shinma)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#9</link>
    <pubDate>Tue, 25 Nov 2014 10:24:04 GMT</pubDate>
    <description>повторюсь - на системе баща нет и не будет. но я попробовал видоизменить код под  shell. &lt;br&gt;&lt;br&gt;#!/bin/sh&lt;br&gt;LOG=&quot;$HOME/.his&quot;&lt;br&gt;&lt;br&gt;while true&lt;br&gt;     do&lt;br&gt;           echo &#096;hostname&#096; &apos;$&amp;gt; &apos;;&lt;br&gt;           while read line&lt;br&gt;                  do&lt;br&gt;                        echo &#096;date&#096;:$line &amp;gt;&amp;gt; $LOG;&lt;br&gt;                       sh -c $line;&lt;br&gt;                            break;&lt;br&gt;               done&lt;br&gt;     done&lt;br&gt;&lt;br&gt;В итоге код работает но до момента пока не воспользуюсь командами с опциями. ll -a он обрабатывает как просто ll. и так далее&lt;br&gt;&lt;br&gt;ll -ltr&lt;br&gt;-ltr: A specified flag is not valid for this command.&lt;br&gt; $&amp;gt;&lt;br&gt;ls -ltr&lt;br&gt;-ltr: A specified flag is not valid for this command.&lt;br&gt; $&amp;gt;&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (pavlinux)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#8</link>
    <pubDate>Fri, 21 Nov 2014 18:58:20 GMT</pubDate>
    <description>&#091;code&#093;&lt;br&gt;#!/bin/bash --posix&lt;br&gt;&lt;br&gt;LOG=/tmp/ccsh.log&lt;br&gt;&lt;br&gt;while true&lt;br&gt;     do&lt;br&gt;       echo -n &apos;$&amp;gt; &apos;;&lt;br&gt;       while read line&lt;br&gt;            do&lt;br&gt;                echo &#096;date&#096;:$line &amp;gt;&amp;gt; $LOG;&lt;br&gt;                sh -c $line;&lt;br&gt;                break;&lt;br&gt;        done&lt;br&gt;done&lt;br&gt;&#091;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (skb7)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#7</link>
    <pubDate>Wed, 19 Nov 2014 12:57:07 GMT</pubDate>
    <description>вующий файл.&lt;br&gt;&lt;br&gt;&amp;gt; в вашем случае &lt;br&gt;&amp;gt; как я понимаю эта штука срабатывает только один раз на входе &lt;br&gt;&amp;gt; в систему. Но в этом случае пользователь еще не работал и &lt;br&gt;&amp;gt; его истории нету и записывать нечего. Или я совсем ничего не &lt;br&gt;&amp;gt; понимаю.&lt;br&gt;&lt;br&gt;Я исходил из того, что на выполнение каждой команды шела вызывается шел. По-ходу это не так и шел вызывается один раз на сессию, так что мой вариант нерабочий. К тому же ниже вы пишите, что ничего существующее менять нельзя в системе, только добавлять, так что в любом случае метод, который я предложил выше, нерабочий.&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (Shinma)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#6</link>
    <pubDate>Wed, 19 Nov 2014 05:18:20 GMT</pubDate>
    <description>&amp;gt; мда, а что за &quot;специфичная&quot; система у вас можно узнать?&lt;br&gt;&lt;br&gt;это из-за sap, у них работа системы построена на csh, разрешено навешивать свои прибамбасы сверху, но трогать существующее запрещено.&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (Pahanivo)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#5</link>
    <pubDate>Wed, 19 Nov 2014 04:47:10 GMT</pubDate>
    <description>мда, а что за &quot;специфичная&quot; система у вас можно узнать?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>C-shell history (Shinma)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/9939.html#4</link>
    <pubDate>Wed, 19 Nov 2014 03:51:23 GMT</pubDate>
    <description>&amp;gt;     echo &amp;#8220;who am i&amp;#8221; &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     who am i &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     echo &amp;#8220;who -R&amp;#8221; &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     who -R &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     history &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     /bin/csh_real $* &lt;br&gt;&amp;gt;     EOF &lt;br&gt;&amp;gt; # chmod +x /bin/csh &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&amp;gt; Надеюсь идея ясна -- хук на csh повесить.&lt;br&gt;&lt;br&gt;Очень жаль, но я не разу не вешал хуки и пока слабо понимаю, что тут написано.&lt;br&gt;mv /bin/csh /bin/csh_real #Переместить /bin/csh в /bin/csh_real и на месте /bin/csh уже ничего не будет&lt;br&gt;echo &amp;lt;&amp;lt;EOF &amp;gt;/bin/csh #Направляете на экран а с него в несуществующий /bin/csh команды до указанного маркера EOF. Вы же убрали этот шел используя команду выше . И я не разу не пользовался EOF пока мало понимаю смысл его работы тут.&lt;br&gt;&amp;gt;     date &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     echo &amp;#8220;who am i&amp;#8221; &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     who am i &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     echo &amp;#8220;who -R&amp;#8221; &amp;gt;&amp;gt; $HIS &lt;br&gt;&amp;gt;     who -R &amp;gt;&amp;gt; $HIS &lt;br&gt;&lt;br&gt;history &amp;gt;&amp;gt; $HIS ## выводит ВСЮ хистори, Текущей сессии, Текущего пользователя, Только данного терминала,&lt;br&gt;&amp;gt;     /bin/csh_real $* &lt;br&gt;&amp;gt;     EOF конец команды&lt;br&gt;&lt;br&gt;# chmod +x /bin/c</description>
</item>

</channel>
</rss>
