それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

linux

ファイルの更新日時(アクセス時刻)を手早く実行する

ファイルの日時 を 手早く変更する touch を使うと手っ取り早く実行できる。 ファイルの更新日時を更新する。 touch -m -d '2018-11-06 19:51' sample.txt ファイルのアクセス日時を指定の時間にする。 access time だから a ですね。 touch -a -d '2018-11-…

xargs でシェルのalias を使えるようにする方法。

xargs で alias が使えない takuya@:教科書$ find -type d -maxdepth 1 | xargs ll xargs: ll: そのようなファイルやディレクトリはありません 悲しい。Aliasはあくまで bashのエイリアスであり、シェル経由せずにfork するような場合には全く役に立たない。…

rcloneでバックアップ転送するときに設定を指定する

rclone でバックアップ便利です。 以前、rcloneについてのエントリを書きました。いまも便利に使っています。 rclone コマンドで google ドライブにデータを転送する(rcloneインストール方法と使い方) - それマグで! バックアップ時にパーミッションエラー …

gitlab-runner を削除する

gitlab-runner を削除したい 不要になった runner や、名前をつけ間違えたrunnerを削除したい。 でもGitLabのWeb側で削除したけど、残ってたので、よくわからなったのでまとめた。 gitlab側で削除されたランナーを見つけて消す方法 sudo gitlab-runner verif…

LVMのVG構成をバックアップする

VGの構成をバックアップするコマンドがある。 VG構成はディスクを再利用するときにどうなってたかわからないと再現が難しい。とくに複数のPVをVGにまとめてから切り出しているときなど。 takuya@:~$ sudo vgcfgbackup Volume group "data" successfully back…

sudo su実行後も環境変数を維持する

suの実行後にカレントディレクトリを維持したい su を実行するとカレントディレクトリが変わってしまうので、いまいるディレクトリやeditor 変数をそのままに 別ユーザーになりたい。 sudo -E を使う sudo にオプションを付ければ、カレントディレクトリなど…

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

xargs で複数行のコマンドを実行したい。 出来ない・・・ ls *.txt | xargs -I@ echo @ ; sleep 1 forループならできるんだけど、for ループだとどうしても不便。 xargs でシェルコマンドを作って渡す. xargs だと限界があるので、もうシェルの文字列にして…

xargs で実行前に確認のY/Nを実行する interactive

xargs のコマンド実行前に確認する xargs -p これで、毎回確認できる 使ってみた例 takuya@temp$ ls *.jpg | xargs -p -I@ --verbose mogrify -crop 2886x3700+0+0 @ mogrify -crop 2886x3700+0+0 out-000.jpg ?...y mogrify -crop 2886x3700+0+0 out-000.jp…

xargs 実行するコマンドを表示してどこまで進んだかを見やすくする

xargs 便利ですよね。 コマンドを明示的に1つずつ実行したり、ファイルをまとめて実行したり。実行する子プロセス数(スレッド)を指定できたり。 まとめて処理しているときにどこまで処理しているかを見ながらやってほしい たとえば、rsync の場合だと rsy…

nginx で proxyPassReverse的なのを実現する。

apache のproxyPassReverseって便利だよね。 とくに静的ページを作るのに便利。記事公開するだけのSPAなんぞいらねーよね。ってとき便利 でもnginx で出来ない。→ 置換すればできるよ。 URIのディレクトリを修正する方法の例 プロキシリクエストの結果を書き…

certbot がLetsEncryptのワイルドカード証明書に対応してたので作ってみた

certbot がワイルドカード対応ですって! Cerbot使ってますか?めっちゃ使いますよね。手軽なHTTPS通信には不可欠です。 なんと、CertBotがワイルドカード対応ですって。ツイートは2018-05-02だから半年前には対応してた模様。知らんかった。最近は情報密度…

ターミナルでCPUの使用率の変化を眺める。s-tui

CPU負荷率の変化を見たい。 サーバーのCPUの負荷率(利用率・使用率)が時間経過とともにどう変わっているかを少し見たいとき。 htop だとじっと眺めておいて、「今」のCPU使用率がわかるんだけど、時間を横軸にとり変化を視覚化できる物があればと思ってた…

github でLFSを使う

github 遅い。。。 github は基本的に遅いので、ちょっとしたバイナリでも追加すると重くなる。 git だけで使ってる分には気にならないんですが、github と連携してpush にバイナリが混じり始めると遅い。 そこでGitHubでもLFSを使うことに。 github にLFSで…

date コマンドと bash でタイマー(カウントアップ)を作る

date を使うと整数値の秒が取れる date +%s 整数値で秒が取れるなら、タイマーも作れそうですよね。 整数の四則演算 と 組み合わせる。 echo $(( $now - $start)) これで、現在の時刻が取れる。 改行(CRLF)が邪魔なので CRLFをしてしまうと1行次に行ってし…

dateコマンドでタイムスタンプ(unix epoch)を表示する

bash で現在のタイムスタンプを取得する unix時間などと呼ばれる int 秒ですね、int の timestamp をdate コマンドで取得する date +%s ## => 1534329465 これで、int秒のタイムスタンプを表示するすることができる。%s は現在の時刻の整数値を返してくれる…

certbotで証明書をぱぱっと更新する

nginx や apacheが起動していても大丈夫。 certbot はhttpd が起動しても、ちゃんとなんとかしてくれる。 /usr/bin/certbot -q renew --pre-hook "service nginx stop" --post-hook "service nginx start" pre-hook や post-hookで再起動を仕込めるので全く…

dm-cache(lvm-cache)を作って使う設定をやったのでキャッシュ作成まとめ

lvm cache を作ってみよう ssd 買ったけど容量持て余しました。大きい容量はNAS/HDDに突っ込んでるし。バックアップはGoogle Drive(Gsuite 無限)にあるし、普段遣いのファイルはNextCloud に置いていて20GB程度だし。SSDがだいぶ余った。 lvm-cache でSSD…

いまさらcrontabのメリットと書き方を見直す

crontab って便利だけどわかりにくさがある crontab の書き方がおかしくてうまく実行されないとか、そんな書き方があったのか!となることがある。 なので、systemd を使って定期実行することが多いんだけど、そうすると今度は管理が大変になる。 なんだこの…

コマンドで重複ファイルを探す。

重複ファイルを探すコマンド find . -type f -exec md5sum {} + | sort | uniq -w32 -dD find して md5sum にかけて sort したら、uniq を取る 解説 コマンドがズラッと並ぶのでひとつずつ見ていく 現在のディレクトリ以下のエントリ(Dir/File)を列挙 find .…

realpathコマンドがなくても諦めずに、代替コマンドを使う

realpath コマンドが無い。 Ubuntuの最小インストールに、realpath コマンドがなかったんです。まぁalpineとかDockerイメージはちょっと便利なコマンドがなくて苦労する。 相対パスを絶対パスに変換する目的でめっちゃ便利なんだけど readlink でなんとかす…

シェルのshebang が実行されるときの引数を見てみる。

linux でコマンドを実行する shebang shebang を指定すると、そのコマンドでプログラムが実行されますよね。 #!/usr/bin/env ruby puts 1 このとき、shebangの1行目に指定したコマンドにはどのように引数が渡されているのだろうか。 ちょっと試してみよう。…

nkf で文字コードの判別結果を取り出す

nkf コマンドで文字コードがなになのか調べる curl http://b.hatena.ne.jp/ | nkf -g UTF-8 nkf -g -g オプションで guess の意味がある。g はゲス(勘ぐり)だとでも覚えておけばいいかもしれない。 NKFについては nkf については以前に使い方をまとめてい…

ユーザーのbashrc を読み込まずにクリーン起動する

bash で設定を無効にして起動する。 env -i bash --noprofile --norc bash --noprofile --norc だと環境変数が。。 takuya@$ bash --noprofile --norc bash: takuya_prompt_command: コマンドが見つかりません bash-4.4$ bash: takuya_prompt_command: コマ…

systemdのjournalctl で指定のサービスのログを見たいけど見れない(mysql)

mysql のログが見れない。 systemctl コマンドの status でログが見れる。 takuya@:mysql$ systemctl status mysqld.service ● mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: e…

ext4 の拡張はマウントしたまで出来た

ext4 のリサイズ マウントを解除して、、て思ってて、うっかりやらかしたら、そのまま拡張できちゃった。 マウントしたままで出来たわ takuya@:~$ sudo resize2fs /dev/mapper/spanning--test-spanning--lv resize2fs 1.43.4 (31-Jan-2017) Filesystem at /d…

findコマンドで日付と時刻を指定して最近のファイルを削除する

find コマンドで最近のファイルを削除したい 間違って作っちゃったファイルなどを削除したい。 find コマンドならそれも簡単 find コマンドで今日のファイルを見つける 今日(直近24時間)のファイルを見つける find var/tmp -type f -daystart -mtime -1 …

nl で空行(empty line) を表示する

nl コマンドで行番号を空行を含めて表示する なにもない行を無視してしまうので、空行を含めて行番号表示したいですよね。 オプションをつける nl -b a -b, --body-numbering=STYLE のオプションで all の a をつける。 実行サンプル takuya@webhooks$ cat .…

sed で指定行に「挿入」する

sed で指定した行に文字を挿入 sed 使うと、X行目に文字を追加することができます。 sed -i '3i#Hello' /etc/hosts これを実行すると、 3行目に、#Hello が挿入されます。 ちゃんと3行目に追加されたのか nl を組み合わせることで、sed の結果を行数を見な…

ブラウザでリモートのターミナルを起動できるShell in A box がiOSから使うのに便利

Shell in a Box が便利だった Macからはターミナルで解決するし、特に生活に不便を感じないんだが、ちょっとしたファイルサーバーのメンテンス(ファイル消す)とかでMac起動するのもめんどくさい iOS Safariから使えるターミナル 各種ターミナルのアプリが…

Macが接続しているルーターのIPアドレスをコマンドで取り出す。ルーティングを取得する方法4種

ルーターIPをパパッと取り出したい。 無線ルーターのIPにアクセスしたいときに、設定→ネットワーク→無線LANとたどるのは面倒くさいですよね。 ルーターIPとはなにか? ネットワークの用語で言えばデフォルトゲートウェイである。つまり ip コマンドでデフォ…