Submit Search
Upload
実用裏方 Perl 入門
•
Download as PPTX, PDF
•
1 like
•
1,557 views
K
keroyonn
Follow
標準モジュールで作るUNIXコマンドとバッチ処理
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Recommended
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Perlで伝統芸能
Perlで伝統芸能
hitode909
Using Dancer
Using Dancer
Yoshihiro Sasaki
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
あらためてPHP5.3
あらためてPHP5.3
Masashi Shinbara
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
Recommended
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Perlで伝統芸能
Perlで伝統芸能
hitode909
Using Dancer
Using Dancer
Yoshihiro Sasaki
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
あらためてPHP5.3
あらためてPHP5.3
Masashi Shinbara
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
Satomi Tsujita
test
test
a1yama1123
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
YASUKAZU NAGATOMI
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Takatsugu Ishikawa
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Haikara
Haikara
jewel12
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
Koichi Shimozono
01 php7
01 php7
Satoshi Yoshimura
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Nginx lua
Nginx lua
Moriyoshi Koizumi
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
tosch0718
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
tosch0718
More Related Content
What's hot
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
Satomi Tsujita
test
test
a1yama1123
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
YASUKAZU NAGATOMI
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Takatsugu Ishikawa
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Haikara
Haikara
jewel12
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
Koichi Shimozono
01 php7
01 php7
Satoshi Yoshimura
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Nginx lua
Nginx lua
Moriyoshi Koizumi
What's hot
(20)
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
test
test
zsh とわたし
zsh とわたし
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
メタメタプログラミングRuby
メタメタプログラミングRuby
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
PHP7を魔改造した話
PHP7を魔改造した話
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Haikara
Haikara
知って得する標準関数の使い方
知って得する標準関数の使い方
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
01 php7
01 php7
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
WordPressと外部APIとの連携
WordPressと外部APIとの連携
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Nginx lua
Nginx lua
Viewers also liked
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
tosch0718
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
tosch0718
バージョン管理入門
バージョン管理入門
Masafumi Yokoyama
IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料
Ryosuke Sugawara
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
T T
X hago3
X hago3
YAMANE Toshiaki
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
Rikie Ishii
GTD 残業を減らす方法
GTD 残業を減らす方法
Gaddict
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
Marika UCHIDA
Unix2
Unix2
Takaya Kotohata
Unix1
Unix1
Takaya Kotohata
TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~
Shuhei Hinoshita
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
hiroyuki Yamamoto
ユーザ目線の実践的BPM
ユーザ目線の実践的BPM
Shigeaki Wakizaka
ふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために
虹 父
20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告
Yasuyuki Minamiyama
ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519
Yasutaka Nariki
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
満徳 関
DXライブラリのすゝめ
DXライブラリのすゝめ
Daisuke Nikura
NetBSDとは
NetBSDとは
miwarin
Viewers also liked
(20)
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
バージョン管理入門
バージョン管理入門
IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
X hago3
X hago3
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
GTD 残業を減らす方法
GTD 残業を減らす方法
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
Unix2
Unix2
Unix1
Unix1
TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
ユーザ目線の実践的BPM
ユーザ目線の実践的BPM
ふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために
20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告
ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
DXライブラリのすゝめ
DXライブラリのすゝめ
NetBSDとは
NetBSDとは
Similar to 実用裏方 Perl 入門
Mincs 日本語版
Mincs 日本語版
Masami Hiramatsu
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
initramfsについて
initramfsについて
Kazuhiro Nishiyama
ソフトウェア工学2023 07 バージョン管理
ソフトウェア工学2023 07 バージョン管理
Toru Tamaki
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Mori Shingo
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
Makiko Konoshima
Debug Hacks Conference 2009
Debug Hacks Conference 2009
Hiro Yoshioka
Ansible入門
Ansible入門
Akira Otsuka
20170124 linux basic_1
20170124 linux basic_1
YUSUKE MORIZUMI
【プログラミング教室】テキスト
【プログラミング教室】テキスト
Manabu Ikarashi
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
VirtualTech Japan Inc.
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
Kiwamu Okabe
dm-thin-internal-ja
dm-thin-internal-ja
Akira Hayakawa
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
VirtualTech Japan Inc.
Building production server on docker
Building production server on docker
Hiroshi Miura
Building production server on docker
Building production server on docker
Hiroshi Miura
Similar to 実用裏方 Perl 入門
(20)
Mincs 日本語版
Mincs 日本語版
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
initramfsについて
initramfsについて
ソフトウェア工学2023 07 バージョン管理
ソフトウェア工学2023 07 バージョン管理
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
Debug Hacks Conference 2009
Debug Hacks Conference 2009
Ansible入門
Ansible入門
20170124 linux basic_1
20170124 linux basic_1
【プログラミング教室】テキスト
【プログラミング教室】テキスト
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
Programming camp Codereading
Programming camp Codereading
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
dm-thin-internal-ja
dm-thin-internal-ja
Subprocess no susume
Subprocess no susume
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
Building production server on docker
Building production server on docker
Building production server on docker
Building production server on docker
More from keroyonn
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
keroyonn
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
keroyonn
Perlで次世代ゲーム開発
Perlで次世代ゲーム開発
keroyonn
Perl/CGI 入門
Perl/CGI 入門
keroyonn
非同期処理の通知処理 with Tatsumaki
非同期処理の通知処理 with Tatsumaki
keroyonn
Perl logging
Perl logging
keroyonn
More from keroyonn
(6)
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perlで次世代ゲーム開発
Perlで次世代ゲーム開発
Perl/CGI 入門
Perl/CGI 入門
非同期処理の通知処理 with Tatsumaki
非同期処理の通知処理 with Tatsumaki
Perl logging
Perl logging
Recently uploaded
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Recently uploaded
(11)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
実用裏方 Perl 入門
1.
実用裏方 Perl 入門
標準モジュールで作るUNIXコマンドとバッチ処理 keroyonn / Hokkaido.pm Hokkaido.pm #4
2.
自己紹介 ちょっとずつ違う素敵なID達 cpan :
keroyonhttp://search.cpan.org/~keroyon/ github : keroyonnhttp://github.com/keroyonn twitter : keroyonn_http://twitter.com/keroyonn_ hatena :keroyon0630http://d.hatena.ne.jp/keroyon0630 Hokkaido.pm #4
3.
今回のお題 面倒な作業を、 コマンドを作って、
バッチ処理にしよう オンラインシステムの裏で地味な運用業務があります。 いらないファイルを消したり、アクセスログ集計したり、システムのバージョンアップしたり、対向システムからFTP投稿されたデータをシステムに投入したり。 手作業でもできるけど面倒臭すぎる、そんな業務の数々を標準モジュールのみで作れると楽。 萌えやポロリはありません!! Hokkaido.pm #4
4.
基礎知識編 Hokkaido.pm #4
用語とかを押えておこう
5.
バッチ処理で出てくる用語 ジョブ 小さな仕事の単位(1コマンドに対応)
ジョブネット 複数のジョブをまとめて制御して実行する単位 ジョブ(ジョブネット)管理 定期実行 ログ出力 メール通知 ジョブネット作成 Hokkaido.pm #4
6.
ジョブ管理システム ジョブ管理ができるもの cron…
最も単純で枯れている ジョブネット管理ができるもの JP1… 商用 hinemos…NTTデータオープンソース 他にもありますかね? Hokkaido.pm #4
7.
バッチ処理の種類 (1/3) 削除系
ログローテート/キャッシュ削除/セッション削除/その他不要ファイル削除/DBの古いデータ削除 などなど 転送系 プログラムの配備/リリースバッチ コンテンツ同期 バックアップ Hokkaido.pm #4
8.
バッチ処理の種類 (2/3) 交換系
データ到着を監視して、ネット越しに情報を取得、フォーマットやエラーをチェックしてデータ形式を変換後、自システムに投入したり。 変更系 指定日になったら、とか特定の条件でステータスを変更するなど(来月の1日なったらコンテンツを公開するとか) Hokkaido.pm #4
9.
バッチ処理の種類 (3/3) 集計系
アクセスログ解析 (webalizer) 自分が作ったことあるのはこれくらいですが、他にもありますかね? Hokkaido.pm #4
10.
注意点 大量データを処理することがある 長時間稼動する
メモリリーク 想定時間内に終了しない 負荷が高くなる メモリ、CPU使用量、IO負荷 あと何かありますかね? Hokkaido.pm #4
11.
実践編 Hokkaido.pm #4
削除バッチを作ってみよう
12.
要件 毎週日曜日、特定のフォルダ以下のファイルを削除する (
cron + find でOK) ファイル名の拡張子は、*.bak (cron + find でOK) ただし、消していいのは過去3時間以内に更新されていないファイルのみ (なんか find じゃだめっぽい) 削除できたファイルを標準出力に、できなかったファイルを標準エラーに出力 (シェルスクリプトかな?) UNIXコマンドライクにオプション指定ができ、ヘルプも出てくる (なんかどんどん面倒になってきた) 色々要件が膨らみそうな予感。(汎用的な言語で書いといた方がいいかな?) Hokkaido.pm #4
13.
モジュールを探す corelistを使うと標準モジュールを検索することができる find
してくれるモジュールは? corelist –v 5.8.8 | egrep –i ‘file|find’ オプション処理してくれるモジュールは? corelist –v 5.8.8 | egrep –i ‘opt’ Hokkaido.pm #4
14.
ソースコード (1/3) 端折り過ぎなのでそのまま使うと危険!!
#!/usr/bin/perl use warnings; use strict; use utf8; use Getopt::Long; use Pod::Usage; use File::Find; use File::stat; BEGIN { binmode STDOUT, ':utf8‘; } # コマンドオプションの解析 my $modified_time = 6; GetOptions( 'mtime=i' => modified_time, ) or pod2usage(2); my $base_dir = shift @ARGV; if ( !defined $base_dir ) { print "削除対象のディレクトリ名を指定してください。"; pod2usage(2); } # 全bakファイルを取得して削除 find( amp;delete_files, $base_dir ); Hokkaido.pm #4
15.
ソースコード (2/3) sub
delete_files { my $fullpath = $File::Find::name; my $filename = $_; # bak以外ならスキップ return if $filename !~ m{bak$}xms; # n 時間以内に更新されたファイルを除外 my $stat = stat($fullpath); my $mtime = $stat->mtime; return if $mtime + $modified_time * 3600 > time; # 削除 my $ret = unlink $fullpath; if ( $ret < 1 ) { print STDERR "$fullpathを削除できませんでした。"; return; } print "$fullpathを削除しました。"; } Hokkaido.pm #4
16.
ソースコード (3/3) __END__
=encoding utf-8 =head1 NAME delete_backup_files - 過去n時間以内に更新されなかったバックアップファイルを除外する =head1 SYNOPSIS delete_backup_files [options] directory_name Options: --mtime=n 過去n時間以内に更新されなかったバックアップファイルを除外する。デフォルト 6 時間 Hokkaido.pm #4
17.
テスト touch コマンドで、ファイルのアクセス時刻と修正時刻を変更できる
touch –t MMDDhhmmファイル名 例. hoge.txt の修正時刻を今年の2/10 10:30に変更 touch –t 02101030 hoge.txt Hokkaido.pm #4
18.
ジョブを登録する crontab –e
分 時 日 月 曜日 ** * * *コマンドのフルパス 30 3 * * 0 /home/hogehoge/delete_backup_files 例. 毎月1日の3時30分にコマンドを実行 3031 * * コマンド 毎週日曜日に毎分コマンドを実行 * * * * 0 コマンド とにかく毎分実行する * * * * * コマンド Hokkaido.pm #4
19.
まとめ Perl は
Linux に標準インストールなので、標準モジュールだけ使って作ればシェルスクリプトと同じ感覚で配布できる。なのでコマンドは、Perl で作った方が楽 -> corelist (Module::CoreList) メモリリークなどに気をつける必要がある -> Devel::Leak::Object 性能の要件を満す必要がある -> Devel::NYTProf Hokkaido.pm #4
20.
ご清聴ありがとうございました Hokkaido.pm #4
Download now