ssh -f -N -R 9000:localhost:3000 user@example.com
リモートサーバーの 9000 番に接続した際に、接続元のローカルホストの 3000 番に接続する例。-f -N はトンネルだけ作る場合。.ssh/config に書く場合は
Host example HostName example.com Port 22 User user RemoteForward 9000 localhost:3000
ssh -L 127.0.0.1:2525:localhost:25 user@example.com
Apache などのアクセスログから、ぱっと簡単な統計を見たい時などに awk は便利です。
便利なものをメモ。
でも最近は大体 goaccess を使っている。
どうしようもない不要メールがキューに溜まってしまうことがあります。
この場合は postsuper コマンドを使用して削除できます。
postfix のメールキューは /var/spool/postfix/ 配下のディレクトリにそれぞれの意味合いごとに溜まります。
例えば deferred のメールを全部削除したい場合は以下のコマンドを実行します。
# postsuper -d ALL deferred
サブジェクト、ってピンポイントでは難しいですが、メール内の文字にマッチしたものだけ削除するときは。
# cd /var/spool/postfix # grep -r -i -l "This is unique subject" ./ | cut -d/ -f3 | postsuper -d -
CRONジョブなど、予期せず強制終了されたプロセスを確認したい場合に便利なコマンド。
abrt-cli list --since 12345678
12345678 は Unixタイムスタンプ。
多分一番簡単にファイル内の行を削除するのは sed コマンドです。
その他にも grep コマンドを使用したりしても十分行えます。
sed で abc を含む行を全削除するには以下のコマンドを実行します。
$ sed '/abc/d' input.fileパイプで渡すこともできます。
$ cat input.file | sed '/abc/d'
ちなみに sed は他の目的でもかなり色々使えます。行の削除で言うと、行数を指定した方法など。
$ sed '1d' input.file
行をまとめて削除などは
$ sed '1,10d' input.file
Linux コマンドを実行したはいいものの、なかなか処理が終わらないので、バックグラウンドに移してログアウトしたい時のコマンド。
$ command Ctrl-z $ disown -h $ bg
最初からわかってるなら、 nohup コマンドをよく使う。
$ nohup command &
firewall-cmd --permanent --zone=public --add-masquerade firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.1.10 firewall-cmd --reload参考: https://myredhatcertification.com/2015/04/26/firewalld-masquerade-forwarding-transparent-proxy/
Apache で SSL のテストをする際に certificate を作成する方法をいつも探しているのでメモ。
とりあえず openssl だけ yum とか apt-get でインストールしておく。
Linux でディスク容量を確認するのに dfコマンドをよく使いますが、ふと不思議なことに気付いた。Used + Available != Total である。
調べてみると、 ext2/ext3/ext4 では標準で 5% を root ユーザーのみの領域として確保してあるらしい。システムが完全に一般ユーザーにディスクを使われないように確保するものらしい。
ただ、別にそんな領域なくても困らないパーティションもあるわけで、その場合は、以下のコマンドでその領域を減らす、もしくは完全になくすことができる。
sudo tune2fs -m 1 /dev/xvdb1
1 はパーセンテージ。 0 を指定すれば、完全になくなる。確認するには
sudo tune2fs -l /dev/xvdb1
ubuntu 以外でも可能かもしれないが、とりあえずここでの前提としては ubuntu-12.04 で LVM が搭載されていないケース。
また、クラウドなどを使っていて、ドライブの増量をしたはいいけど、 ext4 ファイルシステムはどうすればいいか、というもの。
調査した結果、 partd は現時点で ext4 をサポートしていないので、少し怖いのだが、パーティションを削除して、データを上書きせずに再作成するという方法。ちなみに、ディスクはその間アンマウントしてないといけない。あまり実用的ではないが、設定中などのケースではそれでも有効なのでメモ。
本当にうまくいくか保証しないので、データのバックアップは取った方が無難です。
まずは、該当のパーティションを削除。 cfdisk を使う。
sudo cfdisk /dev/xvdb
対象のパーティション(ドライブに1つと仮定)を削除して、完全にフリーな状態へする。
そうしたら、後は fdisk でパーティションを全サイズ使って作成する。
sudo fdisk /dev/xvdb
そして、次にファイルチェック
sudo e2fsck -f /dev/xvdb1
最後にファイルシステムを再構築
sudo resize2fs /dev/xvdb1
これで一応成功した。
lftp を使うと FTP ミラーが簡単にできる。
lftp -e "mirror --only-newer 20140101 && exit" -u username,password ftp.domain.com
seq コマンドを使って、例えば日付を順番に処理したい場合などに便利なコマンド。
for i in `seq 1 31` ; do echo `printf "201401%02d" $i`; done
などとやると 20140101 から 20140131 まで順番に echo コマンドを実行してくれる。
grub を MBR にインストールするには
$ sudo grub-install /dev/sdX(ex. /dev/sda)
インストールされたことを確認するには、ちょっと強引だが
$ sudo dd bs=512 count=1 if=/dev/sdX 2>/dev/null | strings ZRr= ... GRUB ...
などすれば、とりあえず grub がインストールされていることは何となく分る。
参考文献
SMTP でちょっとテストしたい時などに SMTP コマンドを実際に叩いてテストすることがよくあるが、 smtp auth のやり方がいまいち分からなかったので、調べた時のメモ。
マシンにディスクを追加したり、 VMWare でディスクサイズの変更をした際に、既存の ext4 をリサイズするためのメモ。
最近は Cloud ばっかりなので、こういうのはすっかり忘れている。
他のドキュメントからコピーしたテキストを、直接コマンドでファイルに書き込みたい時があるが、 vi を開いてコピペすると syntax 機能やタブ設定のせいで余計なインデントが追加されてしまい面倒なことになる。
そんな時は cat を使って
$ cat > file_name.txt << EOF
とうち、コピペしたい内容をターミナルにコピペして、最後に
EOF
と打って終了する。
ただし、コピペする内容に EOF という行が存在しないのが前提。もし存在する場合は、 EOF を何か適当な他のものに変える必要あり。
いつもこの方法を忘れるのでメモ。
rsync を ssh 経由でバックアップなどに用いたりすることは良くあるけど、それだけの為に Linux ユーザーを作成してシェルを与えるのは嫌な場合が多い。そんな時は、 ssh の PubkeyAuthentication と組み合わせて、特定のユーザーは rsync のみを実行できるように制限する事ができる。その設定をした時のメモ。
ちにみにここで紹介する方法は、 su などでそのユーザーになったり、 ssh の PasswordAuthentication が有効になっていてパスワードでログインできたりする場合は意味がなくなるので注意。
ffmpeg コマンドを使って、様々なフォーマットの動画、音声、画像を操作するメモ。主に mp4, flv 関連。
応用すればもっと色々できる。
環境は Ubuntu 10.04 LTS
telnet コマンドは基本的に平文の通信しかサポートしてなくて、 HTTPS プロトコルに HTTP コマンドを手動でちょっと発行したいときなどに対応できない。
debian には telnet-ssl っていうパッケージがあるみたい何だけど、 CentOS 5 上でコンパイルしようとしたらどうにもエラーで進まないので、ちょっと perl でサイトを色々参考にして作ってみた。その時のメモ。というかソース。
特に細かい説明は無し。
追記:最近はほとんど openssl の s_client でやっている。
$ openssl s_client -connect www.example.com:443