これは、メール本文に色々書込むPerlスクリプトのメモ。 FromやToの書き換えはよく見るけど本文の書き換えはあまり見なかったので書いた。 毎度おなじみの MIME-Tools を使ってます。 ファイル名は sign.pl とでもしましょうか。 sign.pl #!/usr/local/bin/perl use MIME::Parser; my $parseObj = MIME::Parser->new(); my $entity; my $body,$bodyHandle; my $lines; $parseObj->output_dir('./'); $entity = $parseObj->parse(\*STDIN); $body = $entity->is_multipart ? $entity->parts(0) : $entity; $bodyHandle = $body-
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、本当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シ
bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set
シェルスクリプト(Bashスクリプト)で通常ファイルが存在した場合のみコマンドを実行するには、以下のように書きます。 #!/bin/bash if [[ -f ~/path/to/file ]]; then # 実行する処理、以下は例 ls -l ~/path/to/file fi通常ファイル以外の広義のファイル(ディレクトリやソケットなど)の場合は、「-f」で調べても「偽」となり、コマンドが実行されません。 ファイルタイプにかかわらず、存在すればコマンド実行する場合は「-e」を用います。 #!/bin/bash if [[ -e ~/path/to/file ]]; then # 実行する処理、以下は例 ls -l ~/path/to/file fi存在しない場合にコマンドを実行するには、以下のように書きます。 #!/bin/bash if [[ ! -e ~/path/to/file
システム・プログラム 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/classes/syspro-2003/2003-06-23 /csh.html あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.is.tsukuba.ac.jp/~yas/index-j.html ◆cshスクリプトでよく使われる機能 入出力の切替え ---------------------------------------------------------------------- <file 標準入力をfileに切替える。 >file 標準出力をfileに切替える。fil
シェルスクリプトでファイルやディレクトリが存在しているかどうかを確認する方法です。 確認には「if」文を使っています。 ファイルが存在する場合 if文の演算子で「-e」を使うことでファイルが存在しているかどうかを確認することが出来ます。 if [ -e ファイル ]; then 実行するコマンド fi 「test.txt」というファイルが存在するかどうかを確認し、ファイルが存在する場合「File exists.」と表示させるスクリプトを作成しました。 #!/bin/bash FILE="test.txt" if [ -e $FILE ]; then echo "File exists." fi 動作検証用に「test.txt」ファイルを作成します。 $ touch test.txt 「check_file_1.sh」を実行すると「test.txt」は存在するので「File exists.」
Facebookで人気の投稿によくある「シェアさせてください」というコメント。丁寧に一言断りを入れる日本人らしい文化ではありますが、「いちいち言わなくてもいい」「多すぎて不快になる」といった意見もネット上では多く見かけます。そんな人たちのためのスクリプト「シェアよさらば」が公開されました。 シェアよさらば 「シェアよさらば」はリンクをお気に入りなどに入れておき、シェアにおさらばしたいページを見ているときにクリックするだけで動作するブックマークレット(つまり、Facebook以外のページでも使えます)。シェアを一掃する方法はシンプルで、クリックするとそのページの「シェア」を「愛撫」に置き換えるというものです。大量の「シェアさせてください」が目障りなコメント欄で使用すると「愛撫させてください」「愛撫させていただきました」「感動しました! 愛撫させていただきます」など、ものすごい量の変態紳士が誕
この記事で書いていること この記事では Ansibleをはじめる人 を対象に、下記の Ansible 入門的な内容についてまとめています。 Ansibleとは Ansibleを調べる Ansibleを試す Ansibleをもう少し試す 既にわかっている人向けに用語を使えば、 「 jinja templateによるファイルの動的配置などとroleによるタスクの切り出しまでをハンズオン 」 となります。 なお、環境は Python 2.6.6 + Ansible 1.9.4 です。 Ansibleとは Ansibleは "構成管理ツール" と呼ばれ、最近(少なくとも私の中で)話題のツールです。 Infrastructure as a Code なんていう文脈の中では Chef, Puppet などと並んで必ず出てくるツールの1つかと思います。 このあたりの話は話しだすとそれだけで記事が書けてし
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 今いる会社でインフラエンジニアとして仕事をしています。 何十台ものサーバをセットアップして顧客先に納品しているのですが、そのOS設定作業を今までシェルスクリプトで行なっていました。(時には手順書通りにコマンドうってセットアップ...みたいなこともありました。) しかし、Ansibleというサーバ構成管理ツールの存在に気づき始めた人が社内に出て、今構築作業を行なっています。 なぜAnsibleを使うようになったのか話したいと思いますが、Ansibleの具体的な概要については割愛します。 なぜAnsibleに移行しようとするか?
愛用しているワンライナー 特にきれいにまとめてる系の記事ではない 背景 個人的に愛用しているワンライナーコマンド集 aliasが許されない共用マシンとかで実行するときに見る用 シェル芸人への憧れ強め。全ての作業を1発で終わらせる姿には感動。 洗練された無駄の無い技術はかっこいいですね。 シェル芸人さんのような作品とは程遠いけど色々使っていく中で便利だと思ったワンライナー集 シェル芸人については下記をご参照ください http://www.usptomo.com/PAGE=20101025WHATS シェル芸人への道への第一歩として読むのにいい記事があったのでこちらもご紹介 https://qiita.com/t_nakayama0714/items/bfe4852e0535858ee662 UNIX哲学は大変興味深いですね。 下記も結構面白かったのでお時間ある方は是非ご覧ください。 http
ヒストリ履歴からよく使ってるものをお焚き上げする。 注意点: npm 周り、グローバルコマンドは npm i -g で入れてて、ローカルで扱うものは yarn で使うという癖がある 追記: シェルじゃなくてCLIだろと言われるのが多かったので訂正した vscode $ code . -r 現在ディレクトリを VScode で開く。 -r が肝で、新しいウィンドウを生成せず、既存のウィンドウを開き直す。 yarn $ yarn install --prefer-offline yarn install 時にローカルキャッシュを優先する。テザリング環境下でリポジトリを作成するのに便利。 フリーランスになってから出先で作業することが多く、ギガ足りない問題が多々発生した。 git $ git clone <github-url> --depth 1 HEAD だけ clone する。テザリング環境
Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ
Bash は歴史のある代表的なコマンド言語で、テキストにコマンドを並べるだけで手軽にシェルスクリプトとして実行できます。 シェルスクリプトは基本的にはコマンドの羅列ですが、変数や条件分岐、ループ、関数などの制御構文も備えており、手続き型プログラミング言語としての側面も持っています。これらを活用すれば、シェルスクリプトでプログラミングが可能です。 もちろん、一般的なプログラミング言語と比べると機能は限定的で、独特のクセや記法も多いため、最近の言語に慣れた人は戸惑うことも少なくありません。 しかし Bash ならではの強みもあります。多くの OS で標準シェルとして使われているため、普段のシェルコマンドを並べるだけで動く手軽さは非常に魅力的です。一度習得すれば長く役立つ技術と言えるでしょう。 シェルスクリプトを単なるコマンドの集合と捉えず、一つのプログラミング言語として意識して書くことで、Py
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く