ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 
<< November 2018 >>
ARCHIVES
CATEGORIES
PHPファイルの拡張子変更
サーバーの環境が変わったので、 PHPファイルの拡張子を
「PHP」から「PHP5」に変更することになりました。

一つ一つ変えていくのは面倒だったので、
なんとか簡単にできないかと調べました。

findとxargsを使えばできるようです。

ディレクトリ内から、PHPファイルを検索し、
その結果に対してmvを実行して「5」をつけます。

find ./ -type f -name '*.php' | xargs -i mv {} {}5

これで一括変換できました。
| linuxコマンド | 08:51 | comments(0) | - |
「find」と「xargs」
 ひとつのディレクトリにある大量ファイルの中から特定のファイルを削除する作業を行いました。

「find」と「xargs」を使いました。
まず「find」で削除するファイルの条件を書きます。

find ./ -maxdepth 1 -mindepth 1 -name 'H17-*' -type d
直下ディレクトリで階層はそこだけ検索、ファイル名が「H17-」で始まるディレクトリ。

「find」で取得されたファイルを削除コマンドに渡します。ここで「xargs」を使います。
「xargs」は、標準入力から引数を読み込み、指定のコマンドを実行するコマンドです。

find ./ -maxdepth 1 -mindepth 1 -name 'H17-*' -type d | xargs rm -f -r -v

大量にファイルがあると時間がかかるので、rmコマンドのオプション「-v」を指定して
ファイル削除の途中経過を表示します。

圧縮するときも同じように使えます。便利ですね。
find ./ -maxdepth 1 -mindepth 1 -name 'H17-*' | xargs tar zcvf ./H17.tar.gz
| linuxコマンド | 14:38 | comments(0) | - |
basic認証設定
 basic認証の設定を行ったので、次回のためにまとめておきます。

1.パスワードファイルの作成
 htpasswdコマンドで認証に使用するユーザーID・パスワードを設定します。

 htpasswd [オプション] [パスワードファイル] [ユーザ名] [パスワード]

 例 testユーザのベーシック認証パスワードを設定します。
 htpasswd -cb .htpasswd test testpasswd
   「.htpasswd」という名称が一般的なようです。

2.「.htaccess」ファイルの作成
 basic認証を設定するディレクトリに「.htaccess」を作成します。
 内容は以下になります。

AuthUserFile /usr/local/apache2/testdir/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your username and password"
AuthType Basic
require valid-user

1行目・・パスワードファイルのフルパスを記述します。
2行目・・今回は使用しなかったので調べていません。
3行目・・ID・パスワード入力表示のメッセージです。
4行目・・Basicでベーシック認証を指定します。
5行目・・ユーザーを指定しない場合は「require valid-user」で
     指定する場合は「require user ユーザー名」となります。

アクセスしてみて、以下のようなダイアログがでれば設定OKです。
画像
「.htaccess」に記述ミスがあるとダイアログは表示されず500エラーになります。

| linuxコマンド | 11:40 | comments(0) | - |
cron設定
cronは一定時間ごとにプログラムなどを実行できるものです。
linuxでの設定を行ったのでまとめておきます。

cron設定はユーザーごとにつくられます。

以下のコマンドで現在のユーザーの設定ができます。
※viと同じ操作で編集できます。
crantab -e


以下のように設定を行います。

 分(0-59) 時(1-24) 日(1-31) 月(1-12) 曜日(0-7 ※7が日曜日) コマンド

 * は指定なし
 / は○○ごと
 - は○〜○
 
 00 6 * * 1-5 wakeUp.pl
 上記だと月曜から金曜の6:00に「wakeUp.pl」が実行されます。
 
 00 */1 * * * jiho.pl
 上記だと一時間ごとに「jiho.pl」が実行されます。


設定は以下に保存されています。

/var/spool/cron/[ユーザー名]

cronはいろいろ使い道がありそうです。
| linuxコマンド | 18:07 | comments(0) | - |
まとめて削除・コピー
linuxコマンドで、ファイルなどをまとめて処理する方法を調べました。

findをつかうとできるようです。

こうすると
find ./ -name 'H22*' -exec cp {} /tmp/test/ ¥;

H22で名前がはじまるファイルが/tmp/test/にコピーされます。

-exec のあとを書き換えれば削除や移動もできます。

削除
find ./ -name 'H22*' -exec rm {} /tmp/test/ ¥;

移動
find ./ -name 'H22*' -exec mv {} /tmp/test/ ¥;
| linuxコマンド | 16:21 | comments(0) | - |
Linuxのコマンド
 最近、Linuxでの操作を行う機会が多いので、基本的なコマンドをまとめておきたいと思います。

.侫.ぅ襪離灰圈
 cp <コピー元ファイル名> <コピー先ファイル名>

▲妊レクトリのコピー
 cp -r <コピー元ディレクトリ名> <コピー先ディレクトリ名>

ファイルの移動、ファイル名の変更
 mv <移動元ファイル名> <移動先ファイル名>
 
ぅ妊レクトリの移動、ディレクトリ名の変更
 mv <移動元ディレクトリ名> <移動先ディレクトリ名>

 ※cpコマンドと異なり、ディレクトリの場合でも -r オプションは不要
 
ゥ侫.ぅ襪虜鐔
 rm <ファイル名>
 
Ε妊レクトリの削除
 rm -rf <ディレクトリ名>
 
 ※-rオプションだけだと、ディレクトリ内に存在する
  ファイル一つ一つに確認が求められてしまう。

Д僉璽潺奪轡腑麒儿
 chmod <パーミッション> <ファイル名(ディレクトリ名)>
 
 ※ファイル名にワイルドカード(*)指定で、ディレクトリ内の
  全てのファイルを変更できる

┰衢者変更
 chown <所有者>:<グループ> <ファイル名(ディレクトリ名)>

本当に基本的なコマンドばかりですが、忘れてしまわないように
備忘録として記載しておきます。

| linuxコマンド | 20:31 | comments(0) | - |
ワイルドカード
 いまさらながら、linuxでのファイル削除でワイルドカードを使いました。
フォルダ内に年度名がついたフォルダがたくさんあるのを消すときに便利でした。

こんな感じのフォルダ内の「2008」のフォルダを削除する場合は、「rm -f -r 2008*」
実行前
画像

実行後
画像
手動での削除と違ってミスの心配がなく、速いのが良いです。

ワイルドカードは圧縮のときにも使用できます。
2009ではじまるフォルダのみ圧縮する場合は「tar -cvf ./2009.tar 2009*」です。

ワイルドカードという言葉は、
トランプのジョーカー(代用となるカード)に由来しているそうです。

どちらも便利ですね。

| linuxコマンド | 18:32 | comments(0) | - |
フォルダの中のフォルダ削除
linuxで、あるフォルダの中のいらないフォルダを削除する作業がありました。

一つずつ削除できる量ではなかったので、
まとめて削除できるlinuxコマンドを調べました。

rm -f -r 2009-05*

上記コマンドで、フォルダ名が2009-05で始まるものが削除されます。

便利ですね。
linuxコマンドは知れば使えるものがたくさんありそうなので
使いこなせるようにしていきたいです。
| linuxコマンド | 19:11 | comments(0) | - |
| 1/1PAGES |