タグ

Linuxに関するzetamattaのブックマーク (270)

  • 本を読む シェルスクリプトでテンポラリファイルの後始末

    プログラム中でテンポラリファイルを作ったときには、最後に削除します。シェルスクリプトだとこんな感じです。 tmpfile=$(mktemp /tmp/tmp.XXXXXXXXXX) # ここに処理いろいろ rm "$tmpfile" が、この方法には、「正常終了以外ではテンポラリファイルが削除されない」「シェルスクリプトの終了ステータスが、処理体のものでなく、rm -fのものになる」という2つの弱点があります。 で、シグナル処理とかいろいろなパターンがあるんですが、いまどきだとtrapコマンドで疑似シグナルのEXIT(シグナル0)に後始末処理を入れるのが、正常系でも異常系でも処理できて簡単かと思います。 trap 'rm -f "$tmpfile"' EXIT tmpfile=$(mktemp /tmp/tmp.XXXXXXXXXX) # ここに処理いろいろ 正常終了での終了ステータスは

    zetamatta
    zetamatta 2012/08/27
    trap コマンドはいいね!
  • Метка: вход на сайт марафонбет с мобильного | Регистрация БК Marathon

    Регистрация Марафон [.ShellClassInfo] InfoTip=� ���� ����� ������ ���������� ������ � ���������. IconFile=C:\Program Files\Google\Drive\googledrivesync.exe IconIndex=16 Войти Марафон Он может находиться в полуметре от ваших глаз, оставаясь при этом абсолютно незамеченным. Наш анонимайзер позволяет вам, подобно хамелеону, незаметно заходить на Одноклассники, Вконтакте и любые другие сайты, даже есл

    Метка: вход на сайт марафонбет с мобильного | Регистрация БК Marathon
    zetamatta
    zetamatta 2012/08/17
    えーと「ほとんどのLinuxディストリビューションは既にLibreOfficeをバンドルしており、Apache OpenOffice が LibreOffice ほど活発でない。故に LibreOffice は引き続き、特徴や機能を牽引してゆくだろう(ここ超訳)」
  • tarコマンドを負荷制御(bwlimit指定)して実行する方法

    cstream - direct data streams, with bandwidth limiting, FIFO, audio, duplication and extended reporting support. ざっくり言うとデータストリームの制御とかできるよ!っていうコマンドっぽいです。オーディオアプリケーションのデータレートのエミュレーションとかで利用されているそうです。オプションではcstreamコマンドの-tを使うのですが、以下がmanでの内容になります。 -t num    Limit the throughput of the data stream to num bytes/second. Limiting is done at the input side, you can rely on cstream not accepting more than thi

    zetamatta
    zetamatta 2012/08/15
    なるほど、「tar zcfp - source_dir | cstream -t $((${BW}*1024*1024)) > target_file.tar.gz」か。ちぃ、覚えた
  • Gnome TerminalのEast Asian Ambiguousを回避 - ponkotuyの日記

    はじめに 昔書いた文章のコピー。何かノリが他の文章と違うのはご了承下さい。 症例 日語で○とか△とかを、Terminal上で打ち込むと、何故か重なったりしない だろうか。又は…などを打ち込むとカーソル位置がバグったりしないだろうか。 そんな症状が表われたら、君はEast asian Ambiguousと呼ばれる問題に深くのめりこんでいる。この問題はLinuxが今なお日語に優しくないことの証左である。まあ逆に言うと、これ以外には大きな問題は発生していないのだがね。 修正方法(Ubuntu) さて、直し方であるが、システム->設定->お気に入りのアプリを開き、「システム」タブを選ぶ。そして、その他を選択し、コマンドに /bin/sh -c "VTE_CJK_WIDTH=1 gnome-terminal --disable-factory" としたまえ。君は何も考える必要は無い。 余計な一言

    Gnome TerminalのEast Asian Ambiguousを回避 - ponkotuyの日記
    zetamatta
    zetamatta 2012/07/29
    システム->設定->お気に入りのアプリ→「システム」タブ→その他→コマンドに/bin/sh -c "VTE_CJK_WIDTH=1 gnome-terminal --disable-factory"
  • crontab -e は「絶対に」使ってはいけない - ろば電子が詰まつてゐる

    今までナチュラルにcrontab -eでcron編集をしていたのだけど、実はこれはとてつもなく危ないやり方だった。ということを、今さら知った。 crontab -rの恐怖 crontabコマンドにはrオプション(Remove)があり、これを実行すると何の警告もなく全てが消え失せる。 macbook:~ ozuma$ crontab -l 15 * * * * /home/ozuma/bin/hoge.sh 0 9 1 * * /home/ozuma/bin/piyo.sh > /dev/null 2>&1 */5 * * * * /home/ozuma/bin/fuga.sh > /dev/null 2>&1 macbook:~ ozuma$ crontab -r macbook:~ ozuma$ crontab -l crontab: no crontab for ozuma macbo

    crontab -e は「絶対に」使ってはいけない - ろば電子が詰まつてゐる
    zetamatta
    zetamatta 2012/07/23
    ワシは「crontabは-eを禁止して、常に外部ファイルを読み込ませればいいよ派」
  • はじめてのにき(2012-07-12) - scons

    _ scons http://blog.64p.org/entry/2012/07/11/224008 via https://plus.google.com/102550604876259086885/posts/AnEoGQexUcG scons なんて始まってもいねえよ! ってのが僕の感覚だなあ、たいしてしらないけど、必要じゃない機能ばっか充実しているという mukai さんのイメージに賛成する感じ。 scons に関していつも言ってる悪口に、ファイルが当に変更された時にだけ依存関係をビルドしなおしてくれるという便利な機能がある。 これはどういうことかというと、 hello.c から hello.o と hello を作ったあと、 hello.c を touch してもビルドしなおしてくれないと。 stdio.h とか書きかえた時とか、そういう特殊なことしてるからわざわざ touc

    zetamatta
    zetamatta 2012/07/14
    曰く 「scons なんて始まってもいねえよ」― 確かに touch してもリビルドしてくれないというのは糞仕様だなぁ。しかも遅いと聞く
  • luaはじめました。で、luarocksをrpm導入(rpmbuild編)。 - dai-yamashitaの日記

    冷やし中華ではなく、luaはじめました。 ストレスたまると、新しい言語さわりたくなりますよねぇーwww ちょっといろいろ今後のこともあり、luaをはじめました。自分の中では、一番しっくり来てます。 で、Perlでいう、CPAN、PHPでいう、PEAR?、Pythonだと、easy_install(今だとpip?)のように luaでもluarocksというパッケージ管理システムからluaのモジュールを自動で検索してインストールや アップデートしてくれるツールがあります。 http://luarocks.org/ 通常は、ソースコンパイルでの導入なんですが、Redhat系ならRPMで導入だよねぇーということで、 EPELとかでもなくて、ちょこっと探して導入したので、そのメモです。 - ※追記 epel-release-6-7.noarch.rpm には、luarocks入っているのでそっち使っ

    luaはじめました。で、luarocksをrpm導入(rpmbuild編)。 - dai-yamashitaの日記
  • Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事

    絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows API

    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
    zetamatta
    zetamatta 2012/05/07
    だいたいあってる
  • disk fullでどこに大量のファイルがあるのかと思ったらumountしたディレクトリにあった - Humanity

    ハマった。 「sudo du -cksh /*」*1しても「du -S / | sort -rn | head」*2しても見つからないし、どこにあるのかと思ってふと思い出してsudo umount /mnt/dirしたらそこにあった。 スクリプトで一時的にmountしてそこにファイルをコピーみたいなことしてたらスクリプトのバグでmountしてないのにコピーしちゃったらしい。てへぺろ。(真顔) 皆さんもお気を付けください(アホか) *1:これだと/procも読むので刺さるので注意 *2:sortが一時ファイルを作るので確認できなかったけど、これも/procで刺さるような

    disk fullでどこに大量のファイルがあるのかと思ったらumountしたディレクトリにあった - Humanity
    zetamatta
    zetamatta 2012/05/06
    なるほどマウントしちゃうと、マウントポイントにあったファイルは見えなくなるからねぇ
  • Linux運用~間違って「強制全削除」しないようにする方法 | グーフー WordPressのためのLinuxノート

    zetamatta
    zetamatta 2012/04/27
    あー「-i」という名前のファイルを作る方式か。あったあった。でも、「-i」を削除するのに「rm -- *」は無いよな。せめて「rm ./-i」とか
  • Apache CVE-2012-0883 - どさにっき 2012年4月18日(水)

    2012年4月14日(土) ■ BIND + SoftHSM _ 雨ってイヤね。 _ SoftHSM をインストール。手順略。 _ openssl の pkcs#11 engineをインストール。freebsd なので ports/security/engine_pkcs11 を入れるだけ。テスト。 % openssl engine dynamic -pre SO_PATH:/usr/local/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/local/lib/libsofthsm.so -t (dynamic) Dynamic engine loading support [Success]: SO_PATH:/usr/local/lib/engine

    zetamatta
    zetamatta 2012/04/19
    「(shでは)$PATH で空ディレクトリはカレントディレクトリとみなす」「PATH だけでなくて LD_LIBRARY_PATH も同様に空文字列をカレントディレクトリとみなす仕様」
  • tenshiでサーバ上のログファイルを効率良く監視 - Masatomo Nakano Blog

    tenshiとは サーバ上のログファイルは、ただ記録しておいて問題があったときの調査に使うだけではなく、リアルタイムで監視することでアプリケーションやサーバの不具合の早期発見をすることができる。問題が表面化する前に対策を行なうにはログの監視が不可欠だ。 しかし、サーバは、種類も数もどんどん増えていくものだし、それに合わせログファイルの種類も量もどんどん増えていく。全部見るのはもちろん不可能だし、適当に通知をしてもメールボックスを溢れさしてしまうことになり、結局は無視することになってしまい意味がない。 そこで、賢く効率的に監視するために tenshi というツールが非常に便利に使える。 このツール、最近しばらく使っていなかったのだが、最近会社で再び使い始め、便利さを再確認したので紹介してみる。知る人は知るツールだと思うけどいまいちマイナーなのかな? tenshiは、元々はGentoo Lin

    zetamatta
    zetamatta 2012/04/16
    曰く『設定した条件にマッチした(またはマッチしない)ログが現れたら、指定したタイミング(リアルタイム/毎時間/毎日とか)でメールで指定した管理者に通知』『とても小さいツールで導入や設定が簡単』― イイネ!
  • 新さくらのVPSでWebサーバを構築するテンプレ

    先日リニューアルされた「さくらのVPS」でWebサーバ(LAMP)を構築した際の基設定をテンプレートとして公開します。参考になればいいなと。 管理者アカウントの作成 # useradd -G wheel userName # passwd userName # vi /etc/pam.d/su -- 以下の行のコメントアウトを外す # auth required pam_wheel.so use_uid -- # visudo -- 以下の行のコメントアウトを外す # %wheel ALL=(ALL) ALL -- SSH設定 # mkdir /home/userName/.ssh # chown userName. /home/userName/.ssh クライアント側で公開鍵を作成し、サーバに公開鍵を転送 -- $ ssh-keygen -t rsa $ scp .ssh/id_rs

    新さくらのVPSでWebサーバを構築するテンプレ
  • CentOS で行なっておきたいセキュリティ設定: ある SE のつぶやき

    はじめに Linuxセキュリティ設定ってなかなかまとまったものがないので、いろんなサイトを参考にしながら設定をまとめてみました。想定はWeb サーバーで、使用している Linux は CentOS 6.2 です。 設定内容は以下のようになります。 全パッケージのアップデート リモートからの root ログインを無効にする 公開鍵暗号方式を使用した SSH ログイン設定 iptables 設定 SSH ポート番号の変更 不要なサービスを停止 ログ監視設定 ファイル改ざん検知ツール設定 ウィルス対策ソフト設定 Apache の設定 全パッケージのアップデート 最初に以下のコマンドを実行して、全パッケージを最新の状態にする。 # yum –y update 後は脆弱性が発見された時、または定期的にパッケージのアップデートを行う。 リモートからの root ログインを無効にする リモートからメ

  • 僕が考えた最強のサーバ設定 - とあるプログラマの日記 @s025236

    いつの間にかさくらのVPSの標準OSがCentOS6になってたので設定を見直してみました。 月額980円/月から利用でき、2週間のお試し期間もあるのでこれを機会にサーバ設定に足を踏み入れてみてはどうでしょう? 慣れると10分くらいでウェブサーバが立ち上げれるようになります。 すみません。こんなに多くの人が見てると思わなかったんです。 お一人様サーバ向けのつもりで書いてます。 タイトルもタグもネタだったのにツッコまれまくりで恥ずかしい… 公開鍵登録しよう どうせ自分しか触らないなしrootで作業しちゃってもいいんじゃない? リブート(またはsshのrestart)以降秘密鍵がないとsshでログイン出来なくなるので気をつけてください。 mkdir ~/.ssh/ touch ~/.ssh/authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/au

    zetamatta
    zetamatta 2012/03/08
    イイネ!
  • bash&zshでシングルクォートのエスケープ - ボクノス

    ハマったのでメモ。 bash&zshでシングルクォートのエスケープをする場合はちょっとしたテクニックが必要らしい。 ダメダメ例 ダメダメなエスケープ。 % echo 'tanaka\'s OS' quote>残念ながら'tanaka\'で終わってしまう。 回避する。 エスケープするにはちょっとしたテクが必要。 % echo 'tanaka'\''s OS' tanaka's OS'\''という意味不明なエスケープをする。 何故か? 分解してみる。 % echo 'tanaka' \' 's OS' tanaka ' s OSシングルクォートの中で\'というエスケープが出来ないので、一旦文字列を終了し、\'を入力。もう一度文字列を再開する。 まとめ シングルクォートのエスケープはかなり面倒。 shも同様なので、シェルスクリプトを書く際は要注意。 ダブルクオートなら"tanaka's OS"だ

    bash&zshでシングルクォートのエスケープ - ボクノス
    zetamatta
    zetamatta 2012/02/24
    ×'tanaka\'s OS' ○ 'tanaka'\''s OS' ― むむーん
  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

    エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
    zetamatta
    zetamatta 2012/02/24
    「-u」オプション、「set -e」、「declare」は知らなかった。勉強になる。欲を言えば、sh向けかbash向けかを明示しておいてほしかった。
  • NFS で排他制御 - tmtms のメモ

    NFS 上のファイルに対する flock() は働かない。man 2 flock にも次のように書かれている。 flock() does not lock files over NFS. Use fcntl(2) instead: that does work over NFS, given a sufficiently recent version of Linux and a server which supports locking. これは常識…と思っていたのだが、どうやら Linux 2.6.12 以降はちゃんと働くらしい。 The NFS client in 2.6.12 provides support for flock()/BSD locks on NFS files by emulating the BSD-style locks in terms of POSIX b

    NFS で排他制御 - tmtms のメモ
    zetamatta
    zetamatta 2012/02/10
    Linux 2.6.12 以降であれば NFS で flock が動くとのこと
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

    zetamatta
    zetamatta 2012/01/25
    nohup についての検証
  • 指定したバックグラウンドプロセスをデーモン化する - 元RX-7乗りの適当な日々

    昔、「ログアウト後もコマンドを実行し続けたい場合」というエントリで"nohup"コマンドの使い方を書いたのですが、nohupし忘れた時はどうすればいいのか、という話。 指定したバックグラウンドプロセスをデーモン化するためにdisownというbashの組み込みコマンドがあります。 #!/bin/sh while :; do sleep 5 done ためしに上記のようなスクリプトを用意して、"&"付で実行します。 $ sh test.sh & [1] 2692 $ jobs [1]+ 実行中 sh test.sh &次に、disownコマンドを実行します。引数には"%"+ジョブ番号を指定します。(上記例だとジョブ番号は"1") $ disown %1 $ jobs $ この通り。psコマンドの結果は↓ $ ps -edf ・・・省略・・・ nami 2692 1708 0 02:25 pts

    指定したバックグラウンドプロセスをデーモン化する - 元RX-7乗りの適当な日々
    zetamatta
    zetamatta 2012/01/23
    nohup/disown しなくてもデーモンになる環境があるけど、あれは何か設定があるのかなぁ