BLOGTIMES
» ArchiveList (Tag for "sh / java" )
«Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
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 |
    2022/07/18

    HFS Explorer を使って Windows から HFS+ のディスクを読み取る

    mac  java  hfs 
    HFS Explorer - HFS Explorer を使って Windows から HFS+ のディスクを読み取る

    先日、発掘した HFS+ のディスクの内容を読み取るために HFSExplorer というソフトウェアを試してみました。

    この手のソフトウェアにしては珍しく Java で書かれた OSS で GitHub でソースコードも公開(unsound/hfsexplorer)されています。ライセンスは GPLv3 。ディスクをローレベルに扱う処理が Java でどのように実装されているのか気になるので、あとでコードをちょっと覗いてみようと思います。

    インストーラーを使えばセットアップは簡単ですが、Java 8 以降の JRE については別途インストールすることが必要です。

    Catacombae - HFSExplorer

    HFSExplorer is an application that can read Mac-formatted hard disks and disk images.It can read the file systems HFS (Mac OS Standard), HFS+ (Mac OS Extended) and HFSX (Mac OS Extended with case sensitive file names).
    HFSExplorer allows you to browse your Mac volumes with a graphical file system browser, extract files (copy to hard disk), view detailed information about the volume and create disk images from the volume.

    基本的な使い方はFile メニューから Load file system from deviceを選択し、表示されたダイアログにある Autodetect ボタンを押すと HDD 上の HFS+ のパーティションを選択することができます。選択すると右側のツリービューに HFS+ のパーティションの中身が表示されます。

    そのままファイルを個別に操作することもできますが、Tools メニューの Create disk image... を使うとディスクを丸ごと .dmg ファイルに変換できるので、古いディスクからのデータをサルベージする場合にはイメージ化を行ってからファイル操作を行う方が、速度的にもディスクの負担的にも良いと思います。


      at 20:49 |
      2022/04/22

      Java SE の脆弱性に注意(CVE-2022-21449)

      java  cve  jpcertcc 

      Java SE の脆弱性 CVE-2022-21449 について JPCERT/CC のアドバイザリが更新されていたのでメモ。

      問題になっているのは ECDSA の署名のアルゴリズムでゼロのチェックが抜けていた*1というもので、これによってどんな場合でも署名検証が成功するようになってしまうみたいですね。

      いずれにせよ、Java 使っている場合には早めにパッチ適用が必要そうです。

      2022年4月Oracle製品のクリティカルパッチアップデートに関する注意喚起

      脆弱性が悪用されると、細工したデジタル署名を用いた第三者が、ECDSA署名方式による署名検証を成功させ、不正にデータにアクセスするなどの可能性が指摘されています。詳細および最新の情報については、Oracle Corporationや脆弱性の発見者などが提供する情報を参照いただき、対策実施を検討してください。

      参考


      at 19:03 |
      2022/01/19

      Oracle のクリティカルパッチアップデートに注意(2022 年 1 月)

      oracle  java 

      Oracle のクリティカルパッチアップデートが出ていました。
      Java 関連だと JDK 17.0.2, JDK 11.0.14, JDK 8u321 あたりが問題になるところでしょうか。
      MySQL や VirtualBox を利用している場合にこれのアップデート確認しておきましょう。

      Oracle、2022年1月「Critical Patch Update」を実施 ~497件のセキュリティパッチをリリース - 窓の杜

      米Oracleは1月18日(現地時間、以下同)、四半期ごとに実施される定例セキュリティアップデート(Critical Patch Update:CPU)の内容を発表した。「Oracle Java SE」や「MySQL」、「Oracle VM VirtualBox」などの製品で497件の脆弱性が修正されている。


        at 21:09 |
        2021/09/15

        3 年ぶりの LTS となる Java 17 が登場

        oracle  java 

        Java 11 のリリース以来、3 年ぶりの LTS となる Java 17 がリリース*1されていたのでメモ。

        ライセンス問題で Oracle の JDK を使っている人はかなり減っていると思われるので、Oracle の JDK の新しい LTS がリリースされたと言ってもあまり関係がない人が多いかもしれません。基本的には OpenJDK をベースとしたEclipse Adoptium や Microsoft Build of OpenJDKAmazon Corretto など自分が使っているディストリビューションの対応にあわせていくことになると思います。

        Oracle、「Java 17」を発表 ~3年ぶりの長期サポートリリース(LTS) - 窓の杜

        米Oracleは9月14日(現地時間)、プログラミング言語「Java」の最新版「Java 17」を発表した。Java開発キット「Oracle JDK 17」の提供も開始されている。「Java 17」は3年前にリリースされた「Java 11」に続く長期サポートリリース(LTS)で、「Oracle JDK 17」には2029年9月までセキュリティやパフォーマンス、不具合修正のためのアップデートが提供される。


        at 17:51 |
        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/06/23

          任意のタイミングで Java アプリケーションの HeapDump を取る

          java 

          Java 11 からは hprof がなくなってしまったので、OOM の時以外の任意のタイミングで*1ヒープの内容を簡単にするダンプ方法を調べてみました。

          どうやら、HotSpotDiagnosticMXBean*2を直接呼出すしかないようです。

          メソッドとして実装するとこんな感じでしょうか。

          public static void dumpHeap(String filePath) throws IOException { Files.deleteIfExists(Paths.get(filePath)); MBeanServer server = ManagementFactory.getPlatformMBeanServer(); HotSpotDiagnosticMXBean mxBean; mxBean = ManagementFactory.newPlatformMXBeanProxy(server, "com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class); mxBean.dumpHeap(filePath, false); }

          参考


          at 13:11 |
          2021/06/20

          OpenJDK 11 の GitHub リポジトリ

          java  github 

          OpenJDK のソースを確認したい場合には GitHub の OpenJDK のリポジトリを確認すれば良いと安直に考えていたのですが、覗いてみると Java 11 関連だけでも jdk11, jdk11u, jdk11u-dev と 3 つもあって困ってしまいました。

          jdk11 は最終更新が 2018/8 なので Java 11 リリース当初のままのようです。jdk11u-dev には日々、アップデートが入っているようなのでこれは開発用ですね。というわけで、残った jdk11u が最新のリリースが格納されているリポジトリのようなので、一般に使われている Java のコードを確認するためにはこれを見るのが良さそうです。

          今回は ArrayList と LinkedList が見たかったので、以下の2つでした。
          こういうクラスって最近はあまり更新されていないと思っていたのですが、ちょいちょいアップデートはされているんですね。


            at 16:19 |
            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 |
                «Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
                » ArchiveList (Tag for "sh / java" )