use File::Copy;
copy("from_file", "to_file");
一度に複数コピーはこんな感じ。
use File::Copy;
for ($i=5;$i<50;$i++){
copy("old.cgi", "new$i.cgi");
}
ファイル名に連番ついてコピーされる。
諸事情で諸々勉強をいちからやり直すことに。
で以前はプログラム言語はPHPがとっつきやすく、勉強をしていたのだが、しばらく職場を離れてみて思案してみた結果もう一度Perlを基礎から勉強してみることにした。
ギークと言われる方々が能弁にノウハウを語ってらっしゃるのが以前から気になっていたし、(小飼氏もPerl書きだ)仕事に直結した技術がありそうなのも魅力だからだ。また職場に一応PHPがかける人がいるので、そっちのノウハウは緊急性がないというのも理由のひとつでもある。
そんなわけで↓の本を購入。
プログラムは人生的にやっては挫折…の繰り返しなのだが今回でそれは辞めたい。
例によって"Helllo World!!"から始めていますw
誰か一緒に勉強しましょ。。。
諸事情により、最近勉強した知識、特に技術系の知識の記憶がブっ飛んでしまった…
なので全て一から記憶しなおし。。。
<Directory "/var/www/cgi-bin">
Options +ExecCGI
AddHandler cgi-script .pl .cgi
</Directory>
↑場所は環境によりますので適宜変更してください。
あ〜あ、全て憶えなおしか…あまりにもたるい。。。
で久しぶりにネットサーフィンしてたらWordPressを使った自動更新の情報が目に入った。
面白そうだ。いじってみようかな?
最近、特定の作業でしかviを使っていなかったので、基本的なコマンドを忘れてしまっていた。
忘れないようにメモ
複数行のカット&ペースト
例えば15行目から42行までをカットし5行目にペースト
:15,42 m 5
mは「move」の意味。shellと混同して何度も「mv」と入力していた。。。いかん、いかん。。。
久々にPCを購入。EeePCでHD160GB、CPU1.66GHz。
なのでこいつを自鯖にしてやろうと企んだが、少しはまったのでメモ。
勉強も兼ねて、久しぶりにCentOSをいじってみてみることにする。VMWare Playerでシコシコインストールしたのだが、sshでの接続確認はすぐできたものの、FTP、HTTPの接続がどうやってもできない。
しばし考えたが、設定は全て合っている筈。外部から
外部からポート確認をしてみたが、sshの22番は開放確認できるものの、FTPの20,21,番、HTTPの80番が開放していないと出る。
何度もルータを再起動したりしたが、解決せず。
そこで色々ググってみて、どうやらSELinuxとファイアーウォールが初期設定で有効になっていると生じる現象みたい。SELinuxの状態を確認してみると、
[root@centos ~]# getenforce
Enforcing ← SELinuxが有効になっているので下記で無効化する。
[root@centos ~]# setenforce 0
[root@centos ~]# getenforce
Permissive ← SELinuxが無効になっている。
システム起動時にSELinuxが起動しないように設定する。
[root@centos ~]# vi /etc/sysconfig/selinux
SELINUX=enforcing
↓
SELINUX=disabled
SELinuxはよく分からないし、あまり興味が沸かないので使わずに運営することにする。
次にとりあえずファイアーウォールをOFF。
/etc/rc.d/init.d/iptables stop
こちらも起動時に有効にならないようにした。
chkconfig iptables off
iptablesは勉強しながら少しずつ設定することにする。
以上の設定を施してhttp,ftpにアクセスしてみると、あっさりアクセスを確認できた。
あー疲れた&時間をロスしてしまった。
またまた
FreeBSDにアプリを入れた時に障害が。
諸々アプリを追加する必要が出てきたのでportsから入れていたのだが、Aというアプリを入れているとBというアプリがコンフリクトするとのアラート。Bを削除してAを入れるとインストールできたのだが、今度はCをインストールする時にBがないとアラートが出てBを改めてインストールするとAとコンフリクトするからAを削除しろとアラートが出る。随所でこんなんが発生して、必要なアプリを入れられない状態で立ち往生…
ここ最近、このサーバをいじろうとすると、大抵こんな感じになり頓挫してしまう。
このサーバは友人の事務所にあり、急に運営を頼まれてから書籍・ネットを漁りながら何とか運営しているのだが当初拍子抜けするくらい稼動に問題がなかったから楽観視してた。
make コマンドのマニュアルを調べてみると、-k というオプションで強制インストールができるよう。
やけになって全て -k オプションでインストールしてやった。。。
こういうのが後の依存関係の不具合を生むのだろうが、もうええわ。。。
とりあえず目的のアプリは全てインストール。今のところ安定稼動中。
portsからアプリをインストールする時の諸々。
cd /usr/ports …portsに移動
パッケージの検索
make search name='hogehoge'
make search key='hogehoge'
インストール
make install clean
インストールしたパッケージのパスを通す
インストールした場所で rehash
インストール時のオプション設定の確認
make showconfig
インストール時のオプション設定しなおし
make config
アンインストール
make deinstall
再インストール
make reinstall
CentOS5.3にsnortをインストールした。
これが結構手こずった。一番やっかいだったのがsnortdが起動しないということ。
less /var/log/messages
で見てみるとFATAL ERRORが出ている。ルールファイルのcheck flowができない様子。
キリがないので該当するルールファイルのパスをsnort.confからコメントアウト。
恐らくいいやり方ではないがとりあえずこれにて起動はできて、pingテストしてみるとちゃんと検出される。
ブラウザから閲覧できるようにし、Oinkmasterでルールファイルを自動更新する設定に。
一応設定が終わったので、最近稼動しなくなったFreeBSDのsnortの修復を試みる。。。
アンインストールしてみても「インストールされてないよ」とアラートが出る。
ならばと新規インストールしてみるとheimdalとkrb5がコンフリクトしてるという。。
krb5を削除すると依存パッケージのpostgresqlが入らないし、新規インストールしてもコンフリクトは変わらず。heimdalを削除しても同様の現象が。
ならばとpostgresqlのソースを持ってきてインストしようとするが、コンパイル時にエラーが出る。。。
「mysql_query」がどうてらこうてら。
むむむ、いったいどうすりゃいいのか。いっそ連休時にでもOSそのものをインストールしてやろうか?
いや、あまりにもかったるい。。。
CentOSのネットワーク設定に関するメモ。
全般的な設定…/etc/sysconfig/network
ネットワークの再起動…service network restart
ルーティングの確認…route
IPアドレスの設定…/etc/sysconfig/network-scripts/ifcg-<デバイス名>
DNSサーバの指定…/etc/resolv.conf
ひょんなことからCMSのDrupalをいじることに。
CMSってのはContents Managing Syatemとかいうもので、比較的簡単に高機能なサイトが構築できるプログラムモジュール群。
とりあえずインストールしてみたが、サクっと入った。今まで使ったことあるCMSと比べても段違いに簡単だ。そんでもってちょこちょこモジュールをいれてみる。
本日いれたのは
・image
・img_assist
・jquery_update
・potx
の4つ。色々いじって遊んでたらなんかすごーくいいアイディアを思いついた。
早く誰かに話したくてしょうがない。
>>WEB系ランキング追記を表示
久しぶりにviの操作を書籍を読んで復習。うーむ、、、深い。
忘れないようにメモ。
テキスト追加 a …カーソルの後ろから入力
A …カレント行末より入力 = $a
i …カーソル位置より入力
I …行の先頭位置より入力 = 0i
テキスト変更 cw …単語の末尾まで
c2b …2語前まで
c$ …行末まで
c0 …行頭まで
cc …行全体を変更
テキスト変換 s …一文字を変換
S …行全体を変換
~ …大文字と小文字を変更
テキスト検索置換
:s/new/old/ …カレント行のnewをoldに変換
:s/new/old/g …カレント行内全てのnewをoldに変換
:1,$ s/new/old/g …ファイル内全てのnewをoldに変換
:%s/new/old/g …同上
:s/new/old/gc …確認しながら置換
:g/pattern/s/new/old/g …patternがある行のnewをoldに変換
\U …置換コマンド 全て大文字に変換
\u …置換コマンド 単語の先頭文字を大文字に変換
\l …置換コマンド 全て小文字に変換
\L …置換コマンド 単語の先頭文字を小文字に変換
テキスト削除 d
dw …単語単位での削除
db …上記逆方向単語単位での削除
de …単語の末尾までだけの削除
d0 …行頭までの単語単位での削除
d$ …行末までの単語単位での削除 =D
dd …行単位での削除
x …1文字単位での削除
>>WEB系ランキング追記を表示
特定の時間にシステムを終了するコマンド。
#shutdown -h +10 …10分後にシステム停止。
#shutdown -h 0903220745 …2009年3月22日7時45分にシステム停止。
shutdownコマンドは通常root権限で実行。
ここ数日、FreeBSDのApache Mysql FTPが自動起動しないという事態に陥っていた。
色々いじくって少々時間がかかったがようやく原因判明。
/usr/local/etc/rc.cd/以下の起動スクリプトを見るとなぜか自動起動しないサービスの拡張子が消えていた。
ls -l
apache2 mysql-server proftpd
なのでそれぞれコピって拡張子.shをつけた。
ls- l
apace2.sh mysql-server.sh proftpd.sh
で再起動したら各サービスが自動起動した。解決。
phpで以下のモジュールが使用できない。crontabで定期実行しているphpを実行すると、いつの間にかこんな↓警告文が発せられるようになっていた。
Warning文面
PHP Warning: Unknown():Unable to load dynamic library '/usr/local/lib/php/20020429-debug/php_mbstring.dll'…
似たような文面がつらつらと続く。で要は以下のdllが無いというアラートだった。
php_mbstring.dll
php_domxml.dll
php_gd2.dll
php_gettext.dll
php_mime_magic.dll
php_msql.dll
php_pdf.dll
php_xmlrpc.dll
ここら辺はいついじったのか正直覚えていない。
とりあえず、php4をreinstallしようとすると'autoconf262'からみのエラーが出る。
出力ファイルのinfoがないような警告。
/usr/ports/devel/autoconf262でreinstallしようとしてもできない。
autoconf262のエラーは他のアプリ、環境をインストールしている際にも出ている。
なので仕方なくポートをアップグレード。
FreeBSD# cvsup -g -L 2 /etc/ports-supfile <= portsの更新
FreeBSD# portsdb -Uu <= INDEXファイル・データベースの作成・更新
FreeBSD# pkgdb -aF <= 依存関係の不一致を直す
その後
FreeBSD# portupgrade -a てのパッケージのアップデート。(結構時間かかった。)
>>WEB系ランキング追記を表示