主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

PHP 経由でのリモートコピーができない、時の対処法の一例


PHP-8.1 on Ubuntu-22 で composer をインストールしようとした時の事。

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
PHP Warning:  copy(https://getcomposer.org/installer): Failed to open stream: Connection timed out in Command line code on line 1

PHP での copy() でタイムアウトしてる?
curl とか wget なら問題ないから、
allow_url_fopen とか allow_url_include とか、PHP 関連かと思って色々試しても全然解決できない。
なんかクラウドの環境の依存かなとかホスティングかなとか、散々困った挙句、結局以下で解決。

# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6


なんでこれで解決するの

ssh コマンドメモ

トンネル

リモートフォワード

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

awk でクイック apache ログ解析

Apache などのアクセスログから、ぱっと簡単な統計を見たい時などに awk は便利です。
便利なものをメモ。

でも最近は大体 goaccess を使っている。


もっと読む

Postfix のメールキューを削除するには

どうしようもない不要メールがキューに溜まってしまうことがあります。
この場合は 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 -

Linux で強制終了されたプロセスを確認するには

abrt-cli

CRONジョブなど、予期せず強制終了されたプロセスを確認したい場合に便利なコマンド。

abrt-cli list --since 12345678

12345678 は Unixタイムスタンプ。

Linux である文字を含む行を削除したい (sed,grepなど)

sed

多分一番簡単にファイル内の削除するのは 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

もっと読む

ubuntu 16.04 で複数のバージョンの PHP を使う、切り替える


Ubuntu 16.04LTS はデフォルトが php7 で、時に php5 が必要なことがあるので、そんなときにどうするかのメモ。


もっと読む

foreground job を background にして、ログアウト後も継続するようにするには

Linux コマンドを実行したはいいものの、なかなか処理が終わらないので、バックグラウンドに移してログアウトしたい時のコマンド。

$ command
Ctrl-z
$ disown -h
$ bg

最初からわかってるなら、 nohup コマンドをよく使う。

$ nohup command &

Firewalld で DNAT

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/

Firewalld で特定のソースに対してのルールを設定するには

Firewalld は割とわかりやすい設定ファイルを XML で作成して、 IPTABLES をきれいに吐き出してくれるなかなか便利なツール

とは言っても、慣れるまでは色々調べながらやらないといけないので、適当にメモ。

新規ゾーンを作成

特定 source/if に対するゾーンを作成する

firewall-cmd --new-zone=safer --permanent
firewall-cmd --reload

そしてゾーンに属する source を追加

firewall-cmd --permanent --zone=safer --add-source=1.2.3.4/32

このゾーンからのアクセスを許可するポート、サービスを指定

firewall-cmd --permanent --zone=safer --add-port=1234/tcp

ここまでやると、 /etc/firewalld/zones/safer.xml が作成されているので、一応確認して、 --reload をすると反映されます。

SSL Certificate を作成するには

Apache で SSL のテストをする際に certificate を作成する方法をいつも探しているのでメモ。

とりあえず openssl だけ yum とか apt-get でインストールしておく。


もっと読む

ext2/3/4 での df コマンドの出力の差

Linux でディスク容量を確認するのに dfコマンドをよく使いますが、ふと不思議なことに気付いた。Used + Available != Total である。
調べてみると、 ext2/ext3/ext4 では標準で 5% を root ユーザーのみの領域として確保してあるらしい。システムが完全に一般ユーザーにディスクを使われないように確保するものらしい。

ただ、別にそんな領域なくても困らないパーティションもあるわけで、その場合は、以下のコマンドでその領域を減らす、もしくは完全になくすことができる。

sudo tune2fs -m 1 /dev/xvdb1

1 はパーセンテージ。 0 を指定すれば、完全になくなる。確認するには

sudo tune2fs -l /dev/xvdb1

ubuntu で ext4 をリサイズするには

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 を使うと FTP ミラーが簡単にできる。

lftp -e "mirror --only-newer 20140101 && exit" -u username,password ftp.domain.com

Linux で連続数をコマンドで処理

seq コマンドを使って、例えば日付を順番に処理したい場合などに便利なコマンド。

for i in `seq 1 31` ; do echo `printf "201401%02d" $i`; done

などとやると 20140101 から 20140131 まで順番に echo コマンドを実行してくれる。

Linux ファイルの変更を監視するには

例えば Web コンテンツがハッキングなどによって書き換えられてしまった際にそれを検知できると助かります。
Tripwire などの商用ツールも有りますが、 Linux には auditd というデーモンがあります。これが割りと便利なので簡単な使い方をメモ。

特定のディレクトリを丸ごと監視

例えば /var/www ディレクトリ内で発生する書き込み、属性の変更を監視したい場合、以下の様なルールを作る。

# vi /etc/audit/audit.rules
# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page

-w /var/www/ -p wa -k web-wa

-w は監視対象ディレクトリ
-p は監視の種類、 w: 書き込み a: 属性 r: 読み込み など
-k はログを見る際などのキーになる

更に特定のディレクトリだけは関しから外したいような場合は

-a exit,never -F dir=/var/www/tmp -k exclude
-a exit,never -F dir=/var/www/cache -k exclude
-a exit,always -F dir=/var/www -F perm=wa -k web-wa

などとやるとできる。


もっと読む

grub の再インストールと確認

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 がインストールされていることは何となく分る。

参考文献

HAProxy の設定メモ

新しいホスティングに移動するにあたって、せっかくなので HTTP サービスを整理してみた。その時に HAProxy をフロントの Proxy に使ってみたのでメモ。

環境は以下のとおり

  • Ubuntu 14.04.1 LTS

公開しているサービスは色々あり、これを整理したかった。

  • PHP で動いているこのブログ
  • Ruby on Rails のホームページ(Unicorn+Nginx 構成)
  • Ruby on Rails のテスト環境(Unicorn+Nginx 構成)
  • https 上の ownCloud(php)
  • https 上の SVN(apache)
  • その他 Apache で捌いているバーチャルドメイン

これを一台でやってるので、 haproxy は別にロードバランサー的な役割は特にしていない。ただのプロキシ、兼SSL。


もっと読む

telnet で SMTP コマンドを使ってメールを送信するには

SMTP でちょっとテストしたい時などに SMTP コマンドを実際に叩いてテストすることがよくあるが、 smtp auth のやり方がいまいち分からなかったので、調べた時のメモ。


もっと読む

LVM で ext4 のサイズ変更を行う

マシンにディスクを追加したり、 VMWare でディスクサイズの変更をした際に、既存の ext4 をリサイズするためのメモ。
最近は Cloud ばっかりなので、こういうのはすっかり忘れている。


もっと読む
ページ: 1 | 2 | 3 | 4 | 5 |
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google