vim nowrap

表題の通り。たまに忘れるのでメモ。

■ 環境

  • Vim

■ nowrap

アクセスログ等、1行が長いファイルを`vim`で編集したい時に、改行されて行の全体が見えていると少々不便なこともある。よって改行されない状態でざっと見たい。

:set nowrap

これで思い通りの挙動をしてくれる。

以上。

cronで実行されるスクリプトのPATH

表題の通り。たまに忘れて実行エラーになるのでメモ。

■ 環境

  • Amazon Linux

■ PATH

`PATH`が通っていないので、`cron`から実行されるとコマンドが見つからない系のエラーで失敗してしまうことがある。

$ sudo su -
# echo ${PATH}
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin
#

`cron`で実行されるときは下記しか`PATH`が通っていなかった。

/usr/bin:/bin

sbin“系のコマンドを使いたい時にいつもハマってしまう…。スクリプト内のコマンドは絶対PATHで書くものだと若い頃に師匠に教わったのをたまに忘れてる。

以上。

echoで表示する内容にタブ

表題の通り。知らなかったのでメモ。

■ 環境

  • sh

■ echo -e

スクリプトの中で情報を表示する際に`echo`で出すが、見栄えをよくする為に文字列の途中でタブを入れたかったので下記のようにやってみたところイメージと違う。

$ echo "aaa\tbbb"
aaa\tbbb
$

シングルクォートで括っているわけでもないのにな、と思っていたら制御文字を有効にするにはオプションが必要なようであった。

$ man sh
  :
 echo [-neE] [arg ...]
  Output  the  args,  separated  by  spaces, followed by a newline.  The return status is always 0.  If -n is
  specified, the trailing newline is suppressed.  If the -e option is given, interpretation of the  following
  backslash-escaped characters is enabled.  The -E option disables the interpretation of these escape charac-
  ters, even on systems where they are interpreted by default.  The xpg_echo shell  option  may  be  used  to
  dynamically determine whether or not echo expands these escape characters by default.  echo does not inter-
  pret -- to mean the end of options.  echo interprets the following escape sequences:
  \a     alert (bell)
  \b     backspace
  \c     suppress trailing newline
  \e     an escape character
  \f     form feed
  \n     new line
  \r     carriage return
  \t     horizontal tab
  \v     vertical tab
  \\     backslash
  \0nnn  the eight-bit character whose value is the octal value nnn (zero to three octal digits)
  \xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
  :
$

というわけで”-e“オプションをつけて再度実行する。

$ echo -e "aaa\tbbb"
aaa    bbb
$

思い通りの結果を得ることができた。

以上。

■ 関連

Macでの`echo -n`

cronログが出ていない

Ubuntu 14.04で表題の通りである。

■ 環境

  • Ubuntu 14.04

■ cron.log

下記が出力されているかと思いきや出力されていなかった。

/var/log/cron

どうやら初期設定ままでは出力されないようである。

/etc/rsyslog.d/50-default.conf

上記ファイルの”cron“がコメントアウトされているのでコメントインする。

cron.*    /var/log/cron.log

rsyslogを再起動する。

# service rsyslog restart

これでログが出力されるようになった。

ちなみにUbuntu 16.04では問題無い。

以上。

vsftpd umask

表題について。

■ 環境

  • vsftpd 2.2.2
  • Amazon Linux

■ vsftpd

本来は使いたくないのであるが、顧客の要望もありFTP接続を許可しているインスタンスがある。ほぼデフォルト設定ままで接続元IPを絞っていたり、chrootで他のディレクトリが見えないようにしていたりするくらいである。

今回、顧客が作成したディレクトリのパーミッションが755であったため、同じgroupに設定している別のユーザから該当のディレクトリへの書き込みが失敗するという事象が起きた。vsftpdの下記設定を”022″から”002″へ変更し、再起動することで対処をした。

$ vim /etc/vsftpd/vsftpd.conf
  :
local_umask=002
  :

以上。

■ 関連

vsftpd on AmazonLinux