BLOGTIMES
» ArchiveList (Tag for "sh / server" )
«Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
2024/03/04

世界サーバ投げ選手権 (WSTC) が開催されるらしい

server 

ドイツの CloudFest で「World Server Throwing Championship (WSTC) 2024」と銘打ったサーバを投げ飛ばす大会が開かれることが話題になっていたのでメモ。

1U のラックマウントサーバををフリスビーのように投げ飛ばすような感じでしょうか。

「世界サーバ投げ選手権」ドイツで開催 最大40人が参加 - ITmedia NEWS

3月18日(現地時間)にドイツで開催される技術イベント「CloudFest」ではなんとサーバを人力で投げ、その飛距離を競う大会「World Server Throwing Championship 2024」(WSTC 2024)が併催されるという。


    at 22:05 |
    2023/02/17

    xargs で複数のコマンドを実行する

    sh  cli 

    xargs を使って複数のコマンドを一度に実行する方法がないかと思って調べてみました。

    sh -c と組み合わせて、以下のような感じで実行しているパターンが多いようです。
    例えばこの例だと find で探したファイルに対して chown でオーナーを変えつつ、パーミッションも同時に変更することができます。

    find . -type f | xargs -i sh -c 'chown root "{}" && chmod 600 "{}"'

    参考


      at 15:58 |
      2021/08/15

      bash の変数と改行

      sh 

      シェルスクリプトで echo をするときに、変数をダブルクオートで囲った場合とそうでない場合で挙動が違うことに気付いたのでメモ。

      具体的には以下のような感じで、変数内に改行が含まている場合の改行の扱いが変わるようです。
      かれこれ 20 年くらいシェルスクリプト書いていますが、こういう決まりがあることに気付いてませんでした。

      $ hoge=`cat <<EOF > aaa > bbb > ccc > EOF > ` $ echo $hoge aaa bbb ccc $ echo "$hoge" aaa bbb ccc $ echo $hoge | wc -l 1 $ echo "$hoge" | wc -l 3

        at 18:41 |
        2021/05/22

        git リポジトリのリモート URL を一撃で書き換える ( Linux 編 )

        git  sh 

        git のサービス等を乗り換えたりする場合には、ローカルリポジトリのリモート URL を書き換える必要が出てきます。

        1つずつやっても良いのですが、いろいろと面倒なので、現在の URL の一部を置換することリモート URL を書き換えるワンライナーを書いてみました。通常、サービスの乗り換えの場合にはリポジトリ名は URL の一部のみが変わるだけだと思うので、これで十分機能するはずです。

        ここではリモートの URL が https://example.com/foo/bar.githttps://example.jp/foo/bar.git に変更されると仮定すると、以下のような感じでリモート URL の変更が可能です。

        git remote set-url origin $(git remote get-url origin | sed "s|example\.com|example\.jp|")

        ちなみに、Windows の場合は PowerShel を使って同様の操作ができます。


          at 22:28 |
          2021/05/13

          SH-60L の試作機の飛行試験を開始

          SH-60L 

          海自の SH-60K の能力向上型試作機(完成すれば SH-60L)の飛行試験が始まったようです。

          見た目は SH-60J と SH-60K のようなわかりやすい見た目の変化もないようですが、どこかで見にいきたいところです。


            at 22:55 |
            2020/04/13

            PowerShell を CentOS にインストール

            powershell  sh  centos7 

            PowerShell は Linux も公式にサポートしているので、Windows で動かしているバッチを Linux に移植することにしました。
            というわけで、とりあえず CentOS に PowerShell をインストール。

            GitHub からバイナリをダウンロードする手もありますが、今後のアップデート等を考えると yum のリポジトリで入れておく方が管理が楽です。
            CentOS 8 については公式のドキュメントに記載されていませんが、.repo ファイルはちゃんと用意されていてインストールできるようになっています。

            # CentOS 7 curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo sudo yum install -y powershell # CentOS 8 curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo sudo dnf install -y powershell

            参考


              at 09:49 |
              2019/12/06

              dehydrated で JWS has no anti-replay nonce エラー

              letsencrypt  sh 

              Let's Encrypt の証明書を自動更新するために導入した dehydrated ですが、更新に失敗していることに気づいていなくて証明書が失効寸前になっていて冷や汗をかきました。
              実際に出ていたのは以下のような "JWS has no anti-replay nonce" というエラーです。

              # INFO: Using main config file /opt/dehydrated/config Processing host.example.jp + Checking domain name(s) of existing cert... unchanged. + Checking expire date of existing cert... + Valid till Dec 8 23:27:48 2019 GMT (Less than 15 days). Renewing! + Signing domains... + Generating private key... + Generating signing request... + Requesting challenge for host.example.jp... + ERROR: An error occurred while sending post-request to https://acme-v01.api.letsencrypt.org/acme/new-authz (Status 400) Details: { "type": "urn:acme:error:badNonce", "detail": "JWS has no anti-replay nonce", "status": 400 }

              これについては以下で直っていることが確認できたので、git pull して最新版を引っ張ってくるだけで大丈夫でした。


                at 13:55 |
                2019/11/03

                外来機の帰投(入間基地航空祭 2019)

                jsdf  saitama  入間基地  航空祭  F-15  F-2  C-2  AH-1  UH-60  SH-60 
                F-2B(33-8117)タキシング「自衛官募集」 - 外来機の帰投(入間基地航空祭 2019)F-2B(33-8117)アフターバーナを使って帰投 - 外来機の帰投(入間基地航空祭 2019)
                F-15(42-8844)離陸 - 外来機の帰投(入間基地航空祭 2019)F-15(42-8844)アフターバーナを使って帰投 - 外来機の帰投(入間基地航空祭 2019)
                C-2(68-1204) - 外来機の帰投(入間基地航空祭 2019)AH-1S(73482) - 外来機の帰投(入間基地航空祭 2019)
                UH-60J(08-4590) - 外来機の帰投(入間基地航空祭 2019)SH-60K(22-8412) - 外来機の帰投(入間基地航空祭 2019)

                今日は曇りで暗かったので、帰投の時の戦闘機のアフターバーナーがクッキリと見えました。

                昨年は「#ブルーより蒼い方」というのを掲げていて大盛り上がりだった松島の F-2B は今年は普通に自衛官募集だけを掲げていました。


                  at 15:04 |
                  2019/10/31

                  ターミナルのカラー出力を色つきのままファイル保存する

                  sh 
                  カラー出力 - ターミナルのカラー出力を色つきのままファイル保存する

                  Linux などのターミナルでは ANSI のエスケープコードを使えば文字に色をつけることが可能ですが、これをなんとかして色つきのまま保存する方法がないか調べてみました。

                  その結果、以下の ansi2html.sh を使うと HTML として保存できることが分かりました。

                  例えば、画像の出力を ansi2html.sh に通して HTML 保存するとこのような感じで保存することができます。


                  Match #1:

                  Binding for "root":
                  FunctionDecl 0x7fffd94a0d78 </home/hsur/example.c:3:1, line:6:1> line:3:5 main 'int (void)'
                  `-CompoundStmt 0x7fffd94a0f88 <col:15, line:6:1>
                  |-CallExpr 0x7fffd94a0ef0 <line:4:2, col:22> 'int'
                  | |-ImplicitCastExpr 0x7fffd94a0ed8 <col:2> 'int (*)(const char *, ...)' <FunctionToPointerDecay>
                  | | `-DeclRefExpr 0x7fffd94a0e18 <col:2> 'int (const char *, ...)' Function 0x7fffd948fe08 'printf' 'int (const char *, ...)'
                  | `-ImplicitCastExpr 0x7fffd94a0f38 <col:9> 'const char *' <BitCast>
                  | `-ImplicitCastExpr 0x7fffd94a0f20 <col:9> 'char *' <ArrayToPointerDecay>
                  | `-StringLiteral 0x7fffd94a0e78 <col:9> 'char [12]' lvalue "Hello World"
                  `-ReturnStmt 0x7fffd94a0f70 <line:5:2, col:9>
                  `-IntegerLiteral 0x7fffd94a0f50 <col:9> 'int' 0

                  1 match.


                    at 22:28 |
                    2019/09/19

                    Raspberry Pi に Nginx を入れて CGI が動くようにしてみる

                    nginx  raspberrypi  sh 

                    Raspberry Pi に Nginx を入れて、bash で書いたスクリプトを簡単な CGI として動かせるようにしてみたのでメモ。

                    インストール

                    とりあえず apt で nginx と CGI のための fcgiwrap をインストールしておきます。

                    apt update apt -y install nginx fcgiwrap

                    CGI 実行のための設定もろもろ

                    【ubuntu】nginx環境でシェルスクリプトをcgiとして動かす」を参考にさせていただいて、以下のように設定を変更。サンプル用のプログラムも配置してから、nginx と fcgiwrap を起動します。
                    patch がちょっと変な感じになっていますが、これは通常のターミナルには tab 文字が貼り付けできない*1のでそれを \t でエスケーブするようにしているためです。

                    cat << 'EOF' | sed "s/\\\\t/`echo -en '\t'`/" | patch --- /etc/nginx/sites-available/default.org 2019-09-19 22:03:50.770293355 +0900 +++ /etc/nginx/sites-available/default 2019-09-19 22:03:50.770293355 +0900 @@ -61,6 +61,13 @@ \t# # With php-cgi (or other tcp sockets): \t# fastcgi_pass 127.0.0.1:9000; \t#} +\t +\tlocation ~ \.sh$ { +\t\troot /usr/share/nginx/html/; +\t\tfastcgi_pass unix:/var/run/fcgiwrap.socket; +\t\tinclude /etc/nginx/fastcgi_params; +\t\tfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +\t} \t# deny access to .htaccess files, if Apache's document root \t# concurs with nginx's one EOF cat << 'EOF' > /usr/share/nginx/html/date.sh #!/bin/sh echo 'Content-type: text/html' echo '' /bin/date EOF systemctl start nginx systemctl enable nginx systemctl start fcgiwrap systemctl enable fcgiwrap

                    最後に curl で URL を叩いて、時刻が帰ってくれば設定完了です。

                    curl http://localhost/date.sh
                    • *1: Ctrl+v tab を押すと1文字毎に入力することはできます

                    at 22:28 |
                    «Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
                    » ArchiveList (Tag for "sh / server" )