ポコ太のパソコンに関するメモ(あまり勉強していません 間違ってたらごめんなさい)
タスクを無効にしてもいつのまにか有効化されている。
アクセサリーシステムツールータスクで設定せずにコンピュータの管理のディ
スクの管理で設定すると変更できた。
R2ではすんなり設定できた。
面倒なので再インストールしての検証は行っていない。
ある日突然リモートデスクトップで接続できなくなった。
その他のサーバ機能は生きているようだ。ローカルでログオンするとシステム
リソース不足のメッセージが現れ既定のプロファイルでログオンされる。
ターミナルサービスのサービスを再起動しようとするもターミナルサービスは手動
での制御ができない。一度ユーザプロファイルを削除してからログオンし直して
プロファイルを再作成するとターミナル接続は回復したがしばらくしてまた同様の
事象となる。
サーバを再起動しようとMSCSのリソースをスタンバイサーバに移動するとリソース
不足のメッセージは解消されターミナル接続もできるようになる。
その後20日程度運用していたところ再度事象が発生。
HKEY_LOCAL__MACHINE\System\CurrentControlSet\Control\Session Manager
\Memory ManagementのSessionViewSizeとSessionPoolSizeの値を変更してみるが
解決せず。
再起動前のクラスタリソースの移動で回復する。
環境はWindows Server 2003 Enterprise EditionSP1でMSCSにより2台をクラスタの
アクティブとスタンバイで使用。アクティブ側のサーバで発生。スタンバイ側は問題なく
動いている。CPUは3.?GHzデュアルコアタイプ、メモリは5GB程度。
クライアントがWindows 2000のDNSではなくUNIXのDNSを使っている
DCPROMOを実行してうまくいったはずなのに再起動後、途中で立ち上がらない
Computersコンテナ上に表示されているコンピュータの数が異様に少ない
Windows 2000の仕様であろうか。
Windows 2003からは複数指定ができるようになったらしい。
DNSサーバを構築するときにルートとして構成するとルートサーバの
設定画面やフォワーダ先の指定がグレーアウトして設定できなくなる。
DNSを再構築するしかないのかと一年間悩んでいたが、インターネット上
で.エントリを消せばいいという記事を発見。ドキドキしながら削除すると
無事フォワーダ設定ができた。
サーバでDNSの設定を変更してもクライアントはキャッシュに古い情報を
持っていてすぐに反映されない。いちいち再起動するのも面倒と思っていた
ら、コマンドプロンプトからipconfig /flushdns と打てばよいことがわかった。
XPクライアントならネットワークの修復でいい。
クライアントがWindows 2000のDNSではなくUNIXのDNSを使っている
(しかもUNIXではWindows名前解決を行わない)
WINSを使っているが何故か2000、XPクライアントはドメイン参加できない
全クライアントにlmhosts、hostsファイルを作成する。
lmhosts
IP1 ドメインサーバ1 #PRE #DOM:ドメイン名
IP2 ドメインサーバ2 #PRE #DOM:ドメイン名
IP1 ドメインサーバ1.ドメイン名
IP2 ドメインサーバ2.ドメイン名
IP1 ドメイン名
IP2 ドメイン名
hosts
127.0.0.1 localhost
IP1 ドメインサーバ1
IP2 ドメインサーバ2
IP1 ドメインサーバ1.ドメイン名
IP2 ドメインサーバ2.ドメイン名
かなり適当に書いた感はあるがうまくいった
IP1 ドメインサーバ1 #PRE #DOM:ドメイン名
IP1 ドメインサーバ1 “ドメイン名 \0x1b” #PRE
# 123456789012345
本当はこんなふうに書いたほうが良かったのではないかと思う今日この頃。
でも何百台も設定し直すのは嫌だ。
DCPROMOを実行してうまくいったはずなのに再起動後、途中で立ち上がらない
サーバ2台構成でプライマリDNSサーバを自分、セカンダリDNSを相手側に
設定しているときにうまくいかないことが何回かある。一度セーフモードで立ち
上げてDNSのアドレスを入れなおすとうまくいった。
Active Directoryユーザとコンピュータ
Computersコンテナ上に表示されているコンピュータの数が異様に少ない
3000弱のドメイン参加クライアントがいるにも関わらず表示されたコンピュータは
500ちょっと。NT4.0時代のサーバマネージャでは98系クライアントも表示できたが
2000ではドメイン参加しているNT系しか表示されない模様。
Active Directory ドメインと信頼関係
信頼関係を結ぶとき相手のコンピュータがみつからない
DNSやlmhostsできちんと名前解決ができていないと信頼関係は結べない。
当然のことであるが結構忘れていて何度か失敗した。
Windowsの場合、ドメイン参加していなくても自分のPCのアカウントとパスワードが
ドメインのものと一致していれば共有フォルダにアクセスできる。別ドメインからの
アクセスでもいいのだがドメイン同士で信頼関係を結んだとたんにアクセスできなく
なる。自分がアクセスできる方向の信頼関係ならアクセス権を設定すればOKなだけ
だが逆方向の信頼なら運用を考え直さなければならない。
・Active Directoryユーザとコンピュータを扱った後、クライアントがすぐにアクセスできない
ことがある。コンピュータ同士の複製をしておくと早く反映される
その他
・クライアントでログオン失敗の監査が多発していたとき
クライアントAとクライアントBのIPアドレスの重複が原因のケース。AがPCを立ち上げる
とIPアドレスの重複のメッセージがでて、このままではネットワークが利用できないので
普通ならシステム管理者に連絡するところだが、当人はなんとネットワークケーブルを
引き抜いてログオン、その後ネットワークケーブルを繋ぎなおして共有フォルダにアクセス
していたらしい。
深夜帯にバックアップを実行するためxcopyのパッチをしかけていたが複製後の容量が
どうしても少ない。途中で止まってしまっているようだ。調べてみるとある個人用のフォルダ
でエラーが出る。アクセス権を見てみるとなんとAdministrators アクセス権なしが設定されて
いた。いったい何の意味があるのだろう。
次回からはバックアップソフトでバックアップを行うことにする。
年々、大容量のハードディスクになっていくが、ファイルコピーの速度はあまり速くなって
いない。それにしても速度が遅い、遅すぎる、家のPCの方が速いじゃないか、と思ったら
どうやらファイル数の関係かもしれない。家のPCで一度にファイルをコピーするにしても
せいぜい何十の単位、それに比べて何十万というファイル数、しかも画面上に・・・ファイル
をコピー中と表示するだけでも時間がかかりそうである。
画面表示を消す方法があるらしいという話は聞いたことがあるが見つけきれなかった。しかし、
xcopyコマンドでコピーを試みたが速さは大して変わらない。困ったものである。
やむを得ない事情から現用のフォルダを別ドライブに移動することとなった。移動自体は
フォルダをドラッグアンドドロップで難しいことではないのであるが、読み取り専用ファイルや
システムのファイルがあるとその都度どうするか聞いてくる。10時間それのチェックのために
マシンの前にいるのは苦痛である。最初xcopyを使おうと思ったがAdministrator
アクセス権
なし を設定してあるファイルがあるかもしれない。また運用中のフォルダのためコピーの間
はユーザがアクセスできない。当然休日の深夜になる。そこで目をつけたのがバックアップ
ソフト。前日に移動するフォルダをフルバックアップでとっておくのだ。そして目的のドライブ上に
リストアしておく。その後ユーザアクセスを規制してから差分バックアップを行い、移動先の
ドライブに差分リストアを行えばものの数十分で終了する。ポコ太は休日の朝、確認するだけ
でよいのであった。
ポコ太は旧ファイルを削除する為に検索を行った。一年分の検索を四半期ごとにやってどの
くらいの容量があるのか調べていたのであるが、少々焦っていたため同時にやってしまった。
サーバからの返りが遅くなる。しまったと思ったときはご存知のようにクリックひとつの動作が
サーバに負担をかけ何分も待つことになる。当然ユーザからはアクセスできないという苦情が
殺到する。
ポコ太は困ったときのCtrl + Alt + Del を押した・・・自分のPCの終了画面が出てきた。そう、
ポコ太はターミナルサービスでサーバに入っていたのだった。仕方無しにひたすら待ち続け
アプリケーションの強制終了までこぎつけた。なんとか再起動は免れた。
しかし、共有フォルダのアクセスは全くきかなかったのにターミナルサービスの接続が切れ
なかったのは不幸中の幸いであった。
職場毎に別ドライブにワンタッチで行ける様ショートカットを作った。バッチの嫌いな(作れない)
ポコ太は120以上のフォルダに一つ一つショートカットを作った。その作業は大した時間がかかる
ものではなかった。ところがユーザから「アクセスできない」の連絡が。作ったばかりのショート
カットを見てみると、な、ない。なくなっている職場多数、ショートカットが壊れている職場が多数、
ショートカットのアイコンがブリーフケースになってしまったものが2つ。なぜ壊れたかは原因不明
だが、なくなっているものはきっとユーザが消してしまったに違いない。
ポコ太は一つ一つのショートカットにアクセス権(読み取りだけ)を設定したとさ。
疲れた。
アプリケーション
| ソース | ID | メッセージ | 原因 |
| VxSvc_fsys | 803 | Failed to format drive \Device\Harddisk0\Partition2. | フォーマットの失敗 |
| Event Report | 1000 | エラーが発生しました。 指定されたパスが見つかりません。 | 得体の知れないフリーソフトを動かしたがうまくいかなかった。 |
| Userenv | 1000 | コンピュータ ネットワークためのドメイン コントローラ名を取得できません。戻り 値は (2146) です。 |
イチゴドメインのためDNSへの登録ができないのかも。 |
| IISInfoCtrs | 1003 | IIS 管理サービスのパフォーマンス データを照会できません。 レジストリによって返されたエラー コードは DWORD 0 のデータです。 このメッセージに関する追加情報については、以下のマイクロソフト オンライン サポートのサイトを参照してください: http://www.microsoft.com/contentredirect.asp. | Webサービスを停止しているため? 起動する毎に出る。 |
| W3Ctrs | 1003 | W3SVC (HTTP) サービスのパフォーマンス データを照会できません。 レジストリによって返されたエラー コードは DWORD 0 のデータです。 このメッセージに関する追加情報については、以下のマイクロソフト オンライン サポートのサイトを参照してください: http://www.microsoft.com/contentredirect.asp | Webサービスを停止しているため? 起動する毎に出る。 |
| Backup Exec | いろいろ | いろいろ | バックアップ時のエラー。バックアップをキャンセルしただけでも出るので気にしない。 |
| APCPBEAgent | 3005 | "通信なし" | サーバフリーズによる通信障害。 |
| MsiInstaller | 11706 | 製品: Norton AntiVirus Corporate Edition -- エラー 1706.製品 NortonAntiVirus Corporate Edition に対する正式なソースが見つかりません。WindowsInstaller を継続できません。 | この場合はサーバフリーズのためと思われる。 |
| Backup Exec Catalog Server | 34326 | カタロク゛インテ゛ックス(C:\Program Files\VERITAS\BackupExec\NT\Catalogs\BeTopCat.idx)へのアクセスに失敗しました。理由:TheMicrosoft Jet database engine cannot find the input table or query'BackupSet'. Make sure it exists and that its name is spelled correctly.DAO.Parametersd:\b | ディスク障害でカタログ情報が壊れたため。 回復方法はVeritasのサイトにて。 |
| Backup Exec Catalog Server | 34327 | カタロク゛インテ゛ックス(C:\Program Files\VERITAS\BackupExec\NT\Catalogs\BeTopCat.idx)の更新に失敗しました。理由:Table 'Media'doesn't exist.DAO.Databased:\be\rabi\3808r\becat\server\catalogindex.cpp(1552) | ディスク障害でカタログ情報が壊れたため。 回復方法はVeritasのサイトにて。 |
| Backup Exec Catalog Server | 34334 | カタロク゛サーハ゛ーがDAOエラーを報告しました: 3078: The Microsoft Jetdatabase engine cannot find the input table or query 'BackupSet'. Make sureit exists and that its name is spelled correctly. DAO.Database。 ソースファイル: d:\be\rabi\3808r\becat\server\catdaoiterator.cpp(261) | ディスク障害でカタログ情報が壊れたため。 回復方法はVeritasのサイトにて。 |
システム
| ソース | ID | メッセージ | 原因 |
| CIOArrayManagement | 1 | scsi: LUN bad, ha index 1, device 3, LUN 0 | SCSI接続機器の障害。 この時はDLT障害 |
| aic78xx | 9 | デバイス \Device\Scsi\aic78xx1 はタイムアウト期間内に応答しませんでした。 | SCSI接続機器の障害。 この時はDLT障害 |
| KDC | 11 | 名前が host/ooooo.xxx で種類が 10 のアカウントが複数あります。 | 同じセキュリティ情報のクライアントが複数存在。よくわからん。 |
| dlttape | 15 | デバイス \Device\Tape0 はまだアクセスできる状態ではありません。 | DLT障害。 |
| Ntfs | 55 | ディスクのファイル システム構造は壊れていて使えません。 chkdsk ユーティリティをボリューム D: で実行してください。 | ディスク障害。 |
| Server Administrator | 1104 | Fan sensor detected a failure valueSensor location: Hard Drive Fan 2Chassislocation: Main System ChassisPrevious state was: OK (Normal)Fan sensor value(in RPM): 22606 | ファン障害? でも動いていた。 サポートセンタでは管理ソフトのバージョンの可能性もあるということだったがファン装置一式を交換したら出なくなった。 |
| TermServDevices | 1106 | プリンタをインストールできませんでした。 | リモートデスクトップのクライアント設定でプリンタを使用するチェックがデフォで入っているので外さないとサーバ側でエラーが出る。 通常使用のクライアントのチェックを外しておけば知らない端末からのリモート接続をチェックできる? |
| TermServDevices | 1111 | プリンタ __oooooo に必要なドライバ xxxxx が認識されません。管理者に問い合わせてドライバをインストールしてから、もう一度ログインしてください。 | リモートデスクトップのクライアント設定でプリンタを使用するチェックがデフォで入っているので外さないとサーバ側でエラーが出る。 通常使用のクライアントのチェックを外しておけば知らない端末からのリモート接続をチェックできる? |
| Srv | 2006 | サーバーは \\○○○○○ から誤った形式の要求を受信しました | よくわからない。クライアント側の問題ではなかろうか。 |
| Server | 2510 | サーバー サービスはエラー コード 1723 をマップできませんでした。 | DNSからの取得エラーではないかと思われるが不明。 |
| Server | 2511 | サーバー サービスは共有リソース xxxxx$ を再作成できませんでした。ディレクトリ d:\xxxxx が存在しません。 | 共有ファイルの共有を解除する前に削除してしまったため起動毎に出る。 レジストリを削除すればでなくなるが面倒くさいので放置。 |
| Server | 2511 | サーバー サービスは共有リソース VPALERT$ を再作成できませんでした。ディレクトリ C:\PROGRA~1\NAV\alert が存在しません。 | NAVでエラーが発生している模様。 起動時に発生するが管轄外で手出しできず。 |
| NETLOGON | 3096 | このドメインの Windows NT ドメイン コントローラが見つかりません。 | ディスク障害時に発生しているのでネットワーク障害かDNSがうまく動かなくなったか自分で自分がわからなくなったか。 |
| afamgt | 4098 | \Device\AFA0 : 0:5:0 failed 等いろいろ | ディスク障害。 |
| afamgt | 4098 | \Device\AFA0 : Drive 0:5:0 offline on container 0: | ディスク障害。 |
| NETLOGON | 5719 | ドメイン xxxxxxxx の Windows NT または Windows 2000 のドメイン コントローラは利用できません。 次のエラーが発生しました: 現在、ログオン要求を処理できるログオン サーバーはありません。 | 信頼関係を結んだxxxxxxxxドメインとの接続エラー。 xxxxxxxxドメインコントローラのシャットダウン等では。 |
| EventLog | 6008 | 以前のシステム シャットダウン ( xxxx/xx/xx x:xx:xx) は予期されていませんでした。 | 障害でシステムダウン orz |
| Service Control Manager | 7009 | Dell OpenManage Server Agent サービスへの接続中にタイムアウト (30000 ミリ秒)になりました。 | ディスク障害のため。 |
| Service Control Manager | 7026 | 次のブート開始ドライバまたはシステム開始ドライバを読み込むことができませんでした: dlttape-VRTS | BackupExecのドライバをきちんと入れなかったため起動時にドライバエラーが出る。 とりあえず動いているので放置。 |
| MRxSmb | 8003 | マスタ ブラウザは、自分がトランスポート NetBT_Tcpip_{3Fxxxx-xxxx-xxxx- のドメインのマスタ ブラウザであると認識している 別のコンピュータ ○○○○○ からサーバー アナウンスを受信しました。 マスタ ブラウザが停止しているか、またはブラウザの選択中です。 | Windowsブラウジングの問題。 マスタブラウザになってしまったWindowsがシャットダウンされたためではないだろうか。しかしDCではないクライアントPCがブラウズマスターになると困る。 |
| DCOM | 10006 | サーバー:{F9xxxxxx-xxxx-xxxx-xxxx-00xxxxxxx} をアクティブにしようとしたときに コンピュータ xxxxxxxx でエラー "エラー: 一般のアクセスが拒否されました "が発生しました。 | BackupExecの動作による。 |
CentreCOM 9424T/SP
ログイン
ユーザ manager
パスワード friend
パスワードの変更
set password manager
旧パスワード
新パスワード(1〜16文字の英数字)
確認をもう一度
設定ファイルを作成、保存
create config=ファイル名
確認
show file
設定を保存
save configuration
起動時設定ファイルを指定
set config=ファイル名 または none
確認
show config
終了
logoff
logout
quit
ちなみにqだけでも終了してしまった orz
IPアドレス設定
set ip interface=eth0 ipaddress=ipアドレス mask=マスク
確認
show ip interface
ただしDHCPクライアントが有効だと設定できない。
DHCPでのIPアドレス設定
enable ip remoteassign
確認
show ip interface
DHCPクライアントの設定確認
show dhcpbootp
telnetを無効化
disable telnet
確認
show telnet
システム状況
show system
再起動(コールドスタート)
restart reboot
restart switch config=ファイル名 またはnone
ご購入時の状態に戻す
set config=none
restart reboot
ファイル操作
ファイルの表示
show file
boot.cfgの作成
save configuration
確認
show file
show file=*.cfg
ファイルの内容表示
show file=ファイル名
ファイルの削除
delete file=ファイル名
ファイルのコピー
copy 元のファイル名 先のファイル名
ファイル名の変更
rename 前のファイル名 後のファイル名
TFTP
ダウンロード
load method=tftp dest=保存先ファイル名 file=ダウンロード対象ファイル名 server=サーバアドレス
DISTFILEにsts63.imgあるいはAPPBLOCKを指定するとファームウェアのバージョンアップ。
アップロード
upload method=tftp dest=保存先ファイル名 file=アップロード対象ファイル名 server=サーバアドレス
Xmodemでダウンロード、アップロード
load method=xmodem dest=保存先ファイル名
upload method=xmodem file=アップロード対象ファイル名
システム内でファームウェアファイルを転送
アプリケーションブロックからフラッシュメモリへ
upload method=local file=appblock dest=ファイル名
アプリケーションブロックへ
load method=local dest=appblock file=ファイル名
SNMPで管理
SNMPエージェントを有効に
enable snmp
enable snmp authenticate_trap
SNMPコミュニティーを作成
create snmp community=viewers access=read traphost=トラップ送信先
manager=オペレーションを許可するホスト
確認
show snmp community=コミュニティ名
システム名の設定
set system name=システム名
VLANの設定
VLANの作成
create vlan=VLAN名 vid=VLANのID
VLANにポートを割り当てる
add vlan=VLAN名 port=1-11(例)
ポート24をタグ付きポートとして2つのVLANに所属
add vlan=ひとつめのVLAN port=24 frame=tagged
add vlan=ふたつめのVLAN port=24 frame=tagged
マネージメントVLANの指定(デフォはDefault_VLAN)
リモートからログインするポートのVLANをマネージメントVLANに指定しないと
リモートログインできなくなる
set switch managementvlan=VLAN名
現在のポートの状態
sh interfaces
sh interfaces fa0/3
どのように設定してあるか
sh running-config
時間
sh clock
ログ
sh logging
ARP
sh arp
システム情報
sh ver
VLAN
sh vlan
GREP
include
実践
conf terminal
line vty 0 4
exec-timeout 3600
ctl + g ctl + z
conf terminal
router ospf 1
no redistribute rip metric メトリック値 subnets
redistribute rip metric メトリック値 subnets
ctl + g ctl + z
conf terminal
interface e0
ip address 10.55.2.248 255.255.255.0 secondary
standby ip 10.55.2.241 secondary
wr
変更されないアドレスでログイン
HSRPの設定
conf terminal
interface e0
standby preempt
standby priority 90
standby timers 2 7
IPアドレスの変更
no ip address xxx.xxx.xxx.xxx 255.255.255.0
ip address ooo.ooo.ooo.ooo 255.255.255.0
standby ip zzz.zzz.zzz.zzz
sh running-config
セカンダリがある場合はセカンダリのIPアドレスも変更する
7FフロアHUBのDで通信異常
センタースイッチのログでDuplicate address発生
しばらくそのまま使える。
OVでアラーム、CSCから7FフロアHUB へのPINGがNG
フロアHUB配下の端末の通信は正常。
6Fから7FフロアHUBへのPINGがNG
センタースイッチ1から7FフロアHUBへのPINGはOK
7FフロアHUBのCを踏み台にしてDへのtelnetはOK
DからデフォルトゲートウェイにPINGがOK
これでセンタースイッチのARPが正常にもどりアラーム消える。
異常の時にセンタースイッチ1と2のARPを比較してみるべき。
該当IPアドレスのMACを調べる
sh arp
grepしたいときは
sh arp|include 何々
MACのテーブルを見る
sh mac-address-table
sh mac だけで表示するものもある
これで目的のMACアドレスがどのポートにあるかがわかる
ただしFA0/12 とかFA0/24等は端のポートであることからカスケードの恐れがある。
その場合はカスケード先のスイッチを調査する必要もある。
wr
停電の後におかしくなった・・・という時はconfigも確認しよう。
ライトメモリーを忘れていた!なんてことのないよう。
dosコマンド編
共有
| net share 共有名="d:\users\フォルダ名" |
リソースキット編
イベントログの収集
| dumpeventlog
-k system -e 1 -d 20041101 20041124 -f シスログ.txt -s サーバ名 dumpeventlog -k application -e 1 -d 20041101 20041124 -f アプリログ.txt -s サーバ名 dumpeventlog -k security -d 20041101 20041124 -f セキュログ.txt -s サーバ名 |
ユーザを追加
| addusers /c /p:l ファイル名 ファイル名の例 [user] ユーザ名,表示名,パスワード,コメント |
ユーザーにグループを追加
| cusrmgr -u ユーザ名 -agg グループ名 |
ユーザーからグループを削除
| cusrmgr -u ユーザ名 -dgg グループ名 |
ユーザの表示名を変更
| cusrmgr -u ユーザ名 -f 表示名 |
フォルダにアクセス権を追加
| xcacls d:\users\フォルダ名 /G ユーザ名:F administrators:F /Y |
ユーザを削除(ただし休止)
| cusrmgr -u ユーザ名 +s AccountDisabled |
sed編
区切り文字の変換
| sed s/:/,/g 変換前.txt > tmp.txt |
スクリプトファイルで一覧を整形
| sed
-f script.txt ex1.txt >
kekka.txt script.txtの例 s/ユーザー//g s/;//g s/\t/,/g s/,,/,/g |
grep編
ex2.txtに書かれたリストでgrep
| grep -f ex2.txt ex1.txt > kekka.txt |
uniq編
sortしてuniqで件数の多い物順に表示
| ex1.txt|uniq -c|sort /r |
perl編
ファイルから変数に1レコードずつ読み込む
| open
TBL, "<ex1.txt"; while($a = <TBL>){ @b = split(/,/, $a); print "@b[2]\n"; } close TBL; |
テーブルに一致するものを発見
| open
TXT, "< ex1.txt"; while($x = <TXT>){ @y = split(/,/, $x); print "$y[0]\n"; open TBL, "< ex2.txt"; while($a = <TBL>){ @b = split(/,/, $a); # print "$b[1]\n"; if ($x =~ /$b[0]/){ print "発見(^^\n"; } else{ # print "残念\n"; } } close TBL; } close TXT; |
テーブルに一致するものを変換
| open
TXT, "< ex1.txt"; while($x = <TXT>){ @y = split(/,/, $x); open TBL, "< ex2.txt"; while($a = <TBL>){ @b = split(/,/, $a); if($x =~ s/$b[0]/$b[1]/){ print "$x\n"; } else{ } } close TBL; } close TXT; |
ex1.txtに任意の文字を挿入してkekka.txtに出力
| open
TBL, "< ex1.txt"; open OUT, "> kekka.txt"; @x = (first,middle,end); while($a = <TBL>){ chop($a); @b = split(/,/, $a); print OUT "$x[0] $b[0] $b[1] $x[1] $b[2] $b[4] $x[2]\n"; } close TBL; close OUT; |
ex1.txtの前に入力文字を挿入してkekka.txtに出力
| $a
= <STDIN>; chomp($a); open (IN, "< ex1.txt" ||die "ファイル開けん:$!\n"); open (OUT, "> kekka.txt" ||die "ファイル開けん:$!\n"); while (<IN>){ print OUT "$a $_"; print "$a$_\n"; } close(OUT); close(IN); |
いらない部分を切り取り
| open
TBL, "< ex1.txt"; open OUT, "> kekka.txt"; while($a = <TBL>){ chomp($a); @b = split(/,/, $a); print OUT "$b[0] $b[1] $b[2] $b[4]\n"; print "$b[0] $b[1] $b[2] $b[4]\n"; } close TBL; close OUT; |
日付を得る
| @youbi
= ('日', '月', '火', '水', '木', '金',
'土'); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1; print "$year年$mon月$mday日($youbi[$wday]) $hour時$min分$sec秒\n"; |
| ($mday,$mon,$year)
= (localtime(time))[3..5]; $year += 1900; # $mon += 1; |
|
|
|||