シェル

CentOS8のtarオプションでひかっかる

CentOS8でファイルのバックアップをtarでやろうとしたら失敗した話。【環境】 CentOS-7:tar-1.26-35.el7.x86_64 CentOS-8:tar-1.30-4.el8.x86_64 こんなファイルがあるディレクトリにて。 $ ls aaa.txt bbb.txt ccc.tmp .tmp のファイルは除外したいので、…

su と su - の違い

後輩に訊かれたついでに、メモしておく。タイトルの事を訊かれ、「manを見るか、ググれ」と言ったものの、CentOS の man は分かりにくかった(´・ω・`)すまんでも、Ubuntu の man は分かりやすい。 su はログインセッション中に別のユーザになるために用い…

date コマンドで令和から紀元前まで

Windowsが元号関連で色々と話題なっているなか、Linuxではどうなっているか?glibc をupdateすると、新元号にも対応するとの事で、前後の結果をメモしておく。新元号に対応前 $ LC_ALL=ja_JP.utf8 date +%EY -d 20190501 平成31年 yum updateした後 # grep g…

wkhtmltoimage/wkhtmltopdf コマンドで UserAgent を指定する

タイトルの通り、wkhtmltoimage/wkhtmltopdf コマンドで UserAgent を指定したくなったでのメモ。 【環境】 CentOS 6.x wkhtmltoimage 0.12.5 デフォルトでは、wkhtmlto* コマンドでアクセスしたWebサーバのログに、以下のようなUserAgentが残った。 "Mozill…

tcpdump でNSDのクエリログを取る

【環境】 CentOS 7.5 nsd-4.1.20-1.el7.x86_64 NSD(DNSサーバ)だと、標準の機能ではクエリログを取得できない。 (nsd-4.1.20 の時点では)権威サーバでクエリログが必要なニーズが無いのかもしれないが、どれだけのクエリがあるのか調べたかったので、ロ…

mail コマンドで送信したメールが添付になる

【環境】 $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) $ mail -V 12.5 7/5/10 やりたかったのは、diff の結果で差分があった時だけメールを送る事。実査にmailコマンドでdiffの結果をメールしたら、受信側で添付ファイルになってしまっ…

Windows で busybox を使う

Windowsで grep/cut/uniq などを手軽に使いたかったので、busybox 使ったメモ。インストーラではなく実行ファイルのみなので、レジストリも汚さない。 入手先 https://frippery.org/busybox/「busybox.exe」のダウンロードリンクがある。ダウンロード後、念…

ユーザのcrontabを編集する時の誤ったコマンド実行を防ぐ

crontab -e を実行しようとしたら、誤って隣の r を押してしまい、 crontab -r を実行してしまった時の話。コマンドのエイリアスを作っておくと、誤って削除する悲劇を防ぐ事ができる。 .bashrc などに、以下を記載する。 alias crontab='crontab -i' source…

CentOS5/6のmailコマンドでFromを指定する時の違い

CentOS 6で作ったシェルスクリプトをCentOS 5へコピーして実行したら、mail コマンドでエラーになった話。 CentOS 5でエラーになったのは、mailコマンドのFromを指定する部分。 $ mail -r FROM_ADDR TO_ADDR mail: invalid option -- r mailコマンドが含まれ…

tmpwatch の動作を確認する

/tmp と /var/tmp の違い - しょぼんメモリ (´・ω・`) の記事がはてブされたので、tmpwatch についてもメモ。 tmpwatch の動作 man によると、tmpwatch は次のように振る舞う。 tmpwatch(8) - Linux man page It does not follow symbolic links in the d…

jhead コマンドでExif 情報を削除する

デジカメのExifを削除するjhead コマンドについて。jhead http://www.sentex.net/~mwandel/jhead/ jheadコマンドは、Exif情報を削除するほか、ファイルの時刻を修正したりサムネイルを作成したりできる。Exif 情報をまとめて削除するとファイル容量を減らす…

wkhtmltoimage でWebサイトのキャプチャを取得する

wkhtmltoimage http://wkhtmltopdf.org/Webサイトのキャプチャを取得し、画像やPDFで保存する事ができるソフト。 ファイルの入手とインストール # cd /usr/local/src # wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_…

/tmp と /var/tmp の違い

どちらも一時ファイルを保存するディレクトリだけれど、ちゃんと説明があったのでメモ。 /tmp ・再起動するとファイルは消える ・定期的に削除される(10日) /var/tmp ・再起動してもファイルは消えない ・定期的に削除される(30日) CentOS 6.xの場合・・…

logoutとexitの違い

logoutとexitの違いを説明する上で、実際に試してみると分かりやすいのでメモ。logout:ログインシェルを終了する exit :シェルを終了する※ログインシェル:OSにログインした時点で適用されるシェ ル ※サブシェル:シェルから起動された子プロセスのシェル($…

vim で全角スペースを表示する方法

コピペした時などに、全角スペースが入ってしまった場合に見えるようにしたい。.vimrc へ以下を追記する。行頭に " がある行はコメント行。 "全角スペースをハイライト function! ZenkakuSpace() highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta …

「ls -l」で古いファイルも時刻表示させる方法

CentOS 5.x の ls コマンド(coreutils-5.97)では、ls -l で表示されるタイムスタンプ部分の形式がファイルの更新日時によって異なる。 ファイルの時刻がコマンド実行時刻より182日(約半年)以上昔の場合や,182日以上未来の場合は時刻の代わりに年を表示…

RAR for Linux のインストールと使い方

WinRARのLinux版。公式サイト http://www.rarlab.com/ インストール インストールするには、公式サイトからファイルをダウンロードして展開するだけ。コマンドライン版を試してみる。 $ wget http://www.rarlab.com/rar/rarlinux-5.0.1.tar.gz 展開して中身…

yum と apt の対応表

たまに混在させて間違ってしまうのでメモ。yum と apt コマンドの対応表 動作 Redhat系 Debian系 キャッシュの更新 apt-get update ダウンロードしたパッケージを削除 yum clean packages apt-get clean アップデート可能な一覧を表示 yum check-update モジ…

tar で圧縮レベルを指定する方法

tar で gzip や bzip2 などを指定した際に、圧縮レベルを指定するオプションを man で見つけられなかったのでメモ。tarで圧縮レベルを指定するには、それぞれ以下の環境変数をセットする。数値は、-1~-9。GZIP=-9 BZIP2=-9 XZ_OPT=-9 以下のように使う。$ G…

tar の -p オプションのメモ

tar の -p オプションは、展開する時だけ使用されるもので、圧縮する時には要らない。 -p, --preserve-permissions, --same-permissions ファイル属性についての情報を抽出 (superuser では標準) root にて、あるサーバで作成したtarを別サーバで展開する時…

ゼロ書き込みしたHDDの状態を確認する方法

ddコマンドやshredコマンドなどでゼロを書きこんだ結果、ゼロで埋め尽くされているか確認する方法。 【検証環境】 VMware の仮想マシン(CentOS5.x)に8GBのHDD(/dev/sdb)を追加。 適当にデータを書き込んだ後、shred -n 3 -z -v /dev/sdab で削除。 ゼロ…

テキストの^M(はっとM)への対処

最近暫く見かけなかったけど、稀に遭遇するのでメモ。 WindowsからテキストファイルをftpなどのバイナリモードでUNIX上に転送した場合、行末の改行コードが「^M(はっとM)」に変換されてしまう。 該当ファイルを探すには、以下のようにする。^Mは、「Ctrl-V…

月末だけcronで処理を実行する

月末だけcronで処理をさせたい時。 月末(28日~31日)の24時ちょい前に、翌日の日付が 1 の場合に実行すれば良さげ。 下記のような感じでできる。 59 23 28-31 * * /usr/bin/test `date -d tomorrow +\%d` -eq 1 && /path/to/script

sedで上書き置換ができたらいいな、と

sedでファイル中の文字列を置換する時、別名のファイルへリダイレクトしてた。 これが面倒でカッコ悪くて人前ではできないので、上書き置換できたらいいと常々思っていたところで、今更ながらその方法をGoogle先生にお尋ねしたのである。 まず、中身が「aaa…