1ヶ月分の日付に対してコマンド実行するシェルスクリプト
はじめに バッジ処理などを実行する際に、一ヶ月分の日付のデータに対してスクリプトを実行することがよくあります。 例えば、2021年6月分のデータを実行する際に python hoge.py 2021 6 1 python hoge.py 2021 6 2 python hoge.py 2021 6 3 python hoge.py 2021 6 4 ... python hoge.py 2021 6...
View Articleシェルスクリプトでフィボナッチ数を求める
はじめに 以前に【Oracle】PL/SQLでフィボナッチ数を求めるという記事を書いたので、同様にシェルスクリプト(Bash)でもフィボナッチ数を求めるスクリプトが作れるのではと思い、実際に試してみることにしました。 使用した環境 paiza.ioのBashエディタ画面を利用して、作成したスクリプトを実行しました。 無料で実行環境を使わせてもらえるのはありがたいですね。 作成したコード...
View Article*.ppk を *.pem に変換
access_key_sample.ppk を access_key_sample.pem に変換する方法です。 Ubuntu でツールのインストール sudo apt install putty-tools 変換 puttygen access_key_sample.ppk -O private-openssh -o access_key_sample.pem ssh で使う ssh -i...
View Articlefhコマンドで、効率的に複数台のLinuxサーバの構築・テスト・管理をする
fhコマンド作りました。 Python Fabricを真似て、リモートのサーバに対してデプロイするツールを、bashで作っています。 簡単なオプションで、リモートサーバに対して、コマンドを実行したり、シェルスクリプトを実行したりできます。 複数台のLinuxサーバを効率に設定したり、テストしたりできます。 GitHubで公開しています。...
View ArticleVagrantのbashでSDKMAN!をインストールしようとすると、『unzip』が無いと怒られた。
以下のコマンドを叩いて、SDKMAN!をインストールしようとすると。。。 $ curl -s https://get.sdkman.io | bash 以下のログが。。。 curl -s "https://get.sdkman.io" | bash $ curl -s "https://get.sdkman.io" | bash -+syyyyyyys: `/yho:` -yd. `/yh/`...
View Article開発環境自動化②
経緯 mac,linux(arch,ubuntu,debian),windows(wsl)で同じ環境作るのめんどくさすぎ問題。が発端 詳しくは以下の"開発環境めんどくさすぎる問題"を読んでください。 https://qiita.com/aki-f/items/494cefe0e98cc74249fa 問題 今までのやり方だとすべてのパソコンでhaskellやrustがインストールされてしまう。...
View ArticleGlusterFSで新しいサーバを追加できないときの対処"already part of another cluster or having...
状況 既存のGlusterノードが複数個ある ここに、新たに複数のノードを追加したい。 そのためにpeer probeを試みると以下のエラーメッセージのような事態に。 *念の為ボリュームは全て削除済み エラーメッセージ Ansible経由で"あるひとつのノードからみた、自分(e.g. server0)以外のノード全て"をpeer probeしようとした。...
View ArticleLinux: 大量の日付付きダミーログファイルを作成する方法
シェルスクリプトの単体試験で時々使用するのでメモしておきます。 実施環境: Linux [testuser@testhost ~]$ uname -a Linux testhost 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux...
View Articleiptables VPN接続許可アドレスを追加するスクリプト
背景 RaspberryPiにSoftEther VPN https://ja.softether.org/...
View Article標準出力、標準エラー出力の出力先をチェック
背景 標準出力と標準出力エラーを /dev/null にリダイレクトして破棄する時、正しく記述できているか不安になることが個人的によくあります。 which_is_correct? $ script 2>&1 /dev/null $ script > /dev/null 2>&1 手軽に動作確認をする手段として、以下のようなスクリプトを用意します。 stdcheck...
View Article【Mac】Docker Desktopをコマンドで起動/終了する
始めに マウスに手を持っていくのが嫌すぎて、コマンド実行ですべてを完結させたいと思っている今日この頃です。 今日は、Launchpad(アプリ一覧の一覧を開くやつ)を使わなくても、コマンドからDocker Desktop(アプリケーション)を起動/終了する方法を紹介します。 起動コマンド -a ・・・ パスを書かずに/Applications配下のアプリケーションを開くオプション open -a...
View ArticleLinux tee 命令
tee 命令 tee 命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的 stdin。简单的说就是把数据重定向到给定文件和屏幕上。 存在缓存机制,每 1024 个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到 1024 个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。 语法...
View Articlepandocとsedでlatex原稿をwordに変換する
はじめに latexのファイルは、microsoft Wordよりも流通が良くない。また、Wordは履歴や文章校正の機能などが高機能である。そのため、英文校正に出したかったり、共著者とWordの履歴機能を使いたかったり、そもそもlatexを使わない共著者がいたりすると、latexの原稿をWordに変えたいときがある。ここでは、pandocを使って、latex...
View Article【Bash】変数を用いてJSON文字列を作成する
はじめに Bashで変数を使用するには"を使う必要があるため、シンプルに書くと以下のようになります。 が、これだと見にくく、追加が面倒くさいです。 そこで良い方法が無いか調べてみました。 $ REPOSITORY="foo" $ BRANCH="bar" $ SCOPE="baz" $ echo "{ \"repository\":\"$REPOSITORY\",...
View ArticleVerilog HDLで1コマンドでシミュレーション波形を出せる"verisimu"コマンドを実現する
Verilog HDLの勉強をしていて思ったことは、Icarus Verilogを用いてシミュレーションを実行し、結果の波形をGTKWaveで表示するまでに実行するコマンドの数が多く、煩雑であるということです。そこで1コマンドでシミュレーション波形の表示まで行ってくれるverisimuコマンド1を実現させたいと思います。 検証環境...
View ArticleなぜシェルスクリプトはPOSIXに準拠しても環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜
まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX...
View Articleターミナル操作を快適にするTips集
ITエンジニア。 それは人生の半分をターミナル操作して過ごす生き物。 そんなITエンジニア諸氏に捧げるTips集です。 (訳:個人的に役に立ったTips集まとめてみた) 登場回数でソート <some_command> | sort | uniq -c | sort -nr 使用回数が多くて自然と覚えてしまったヤツ。 何かと集計する時に便利。 $ cat example.txt aaa...
View Articlebashで連番の変数を区切り文字付きで作成
$ X=`seq -s "|" 1 12` $ echo ${X} 1|2|3|4|5|6|7|8|9|10|11|12 wgrib2のmatchでワイルドカード的なことがやりたかったため。 $ X=":PRATE:surface:(`seq -s "|" 1 12`) hour fcst:" $ echo ${X}...
View ArticleBash起動時の設定ファイル実行順序の要約
Bashの設定ファイルの実行順序が、学んでいるうちはとても煩雑に見えましたが, 簡潔にまとめられる気がしたのでメモしてみました bashの設定ファイル読み込み&実行は,2段階あると思えば分かりやすい気がします。 1. ログイン時実行ファイルの読み込みフェーズ ※ログインシェルはここから開始 対象ユーザ 設定ファイル 備考 全ユーザー /etc/profile...
View Article