スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

クリエイトプロセス

カタカナでクリエイトプロセスと記述すると、胡散臭い業者名っぽいですが、
英語で書くと CreateProcess となりまして、年季の入ったIT屋であれば一度は目にしたことがある?
かもしれない、いわゆるWindowsのAPI関数名となります。
UnixやLinuxでは、fork() と言われている、プロセスを新たに作成するこの機能ですが、
じつは、Windows等のOSは、プロセスをポコポコ大量に産みまくる仕組みで出来ており、
たくさんのプロセスが協力し合いながら動いています。
アイコンをクリックしてアプリを起動しても、プロセスが産まれます。
このプロセスを産ませる為の命令が、このCreateProcessなのですね。
まぁ産むとか産ませるとか書くと、なんかエロゲーちっくかもしれませんが
べつに産ませるために行為などは必要なくって、


bRet = CreateProcess(
NULL,//(LPCTSTR)appName,//LPCTSTR lpApplicationName, // 実行可能モジュールの名前
szCmd,//lpCommandLine, // コマンドラインの文字列
NULL,//LPSECURITY_ATTRIBUTES lpProcessAttributes, // セキュリティ記述子
NULL,//LPSECURITY_ATTRIBUTES lpThreadAttributes, // セキュリティ記述子
FALSE,//BOOL bInheritHandles, // ハンドルの継承オプション
dwCreationFlags, // 作成のフラグ
NULL,//LPVOID lpEnvironment, // 新しい環境ブロック
NULL,//LPCTSTR lpCurrentDirectory, // カレントディレクトリの名前
&stStartupInfo, // スタートアップ情報
&ProcessInformation // プロセス情報
);


こんな感じでCreateProcess命令をC言語ソースに記述すればいいんです。





と私は思っていたのですが、
上記サンプルコードでの「szCmd」ですが、ここがくせ者でした。
Unicode対応させるためにWCHARなどを使う場合、
strcpyなどを使ってこのszCmdを用意すると、CreateProcessでプロセスが起動されません。
sprintfとか strcat とかもダメですし、
文字列をリテラルで記述してもダメだったと思います。

んでは、どうすれば良いのか?

よくあるコマンドラインからの取り込みを想定しますと、

まず、メイン関数の記述は、

int _tmain(int argc, _TCHAR* argv[])

という形で、 _TCHAR 型のポインタの配列を第二引数にとらせます。

つぎにコマンドラインの取り込みですが、ここは普通に argv[1]などでいいです。
ただし、コマンドラインの文字列をコピーする先の文字変数は、
wchar_t 型などで宣言してください。
wchar_t lpCommandLine[256];
等の感じで。

エクスプローラーを呼び出す文字列をとりあえず作ってみます。


TCHAR szCmd2[] = TEXT("EXPLORER.EXE");
TCHAR szCmd[1024];
_tcscpy(szCmd,szCmd2);
_tcscat(szCmd,TEXT(" /E,/SELECT,\""));
_tcscat(szCmd,argv[1]);
_tcscat(szCmd,TEXT("\""));


汚いコードですが、判りやすいのでは?
リテラルは、TEXT(でくくります。
文字列の連結とかは、 _tcscpy や _tcscat を使います。
これでszCmd変数の中身が正しく準備されるわけですね。
Wide文字対応できた、ということで。
stStartupInfoとかは、
.cb=sizeof(で大きさを指定し、
.dwFlags=STARTF_USESHOWWINDOW;
.wShowWindow=SW_SHOW;
等としておきます・・・あ、そのまえに
SecureZeroMemory(&stStartupInfo,sizeof(stStartupInfo));
SecureZeroMemory(&ProcessInformation,sizeof(ProcessInformation));
としてメモリを初期化しておくのはわすれないでね…

これで、ちょいちょいとした細かいユーティリティプログラムを作るときのWIDE文字対応、Unicode対応としてやりやすくなるのではないでしょうか?
スポンサーサイト

Logitech G13 Advanced Gameboard

ロジテック(ロジクール?)の
G13
というゲームパッド(プログラマブルキーボード?)が
あります。
G13 Advanced Gameboard
という名前です。

見た目はこんなヤツ。
P1040337.jpg

ものすごく埃だらけなのは、スルーしてください。

で、最近、こいつのドライバーのソフトがUPDATEされたのです。
ここからダウンロードできる。

が、インストールすると、環境によっては、VisualC++のRuntime Error がでて、全く使えなくなります。

最悪ですね。

ちなみにウチもエラーが出ました。

エラーはうろ覚えですが、

 Visual C++ Runtime Error

というダイアログが出るものです。
パソコンを再起動しても、
USBをつなぎなおしてもエラーになります。
USBを別の場所に入れ直してもダメでした。

ググると、「【Logicool】ロジクールマウス123匹目【Logitech】/パソコン情報局」というページがヒットして、そこには、「WACOMのタブレットドライバをアンインストールしたら、ロジテックが動いた」とあります。

ちなみに私は、WACOMのサイトから新しいドライバをインストールしてみましたが、
症例は改善しませんでした(全く変化なし)。

ゲーミングマウスでも同じ症例が出るらしいです。

ただ、絵描きさん達は、WACOMタブレットドライバをアンインストールなんて出来ないと思います。
また、絵描きで、このG13を活用している場合は、両方が動いてくれなければ困りますよね…。

WACOMドライバーを活かした状態で、G13も使いたい!と。

こういう場合は、アップデートする前の状態に戻すのが定石です。

ところが、ロジのウェブサイトG13 Advanced Gameboardには、旧バージョンのドライバが載っていません。

ネットからのダウンロードは出来ないわけです。

私の場合は、G13を買ったときのCDがまだ手元にあったので、それを入れ直してみました。

そしたらあっさり動きました。

ただ、他のソフトとの組み合わせの動作で、うまくスクリプトが動いてくれなかったので、
アップデートをかけました(CDで入れたゲーミングソフトウェアの機能でアップデートするわけですね)。
すると、最新版まではいきませんが、ある程度バージョンが上がって、
前と同じように使えるようになりました…。

うーむ。

最近、WACOMペンタブもメジャーになってきているので、
まぁロジテックかWACOMかどっちかで良いので今回のBUGには対応してもらいたいものですな。

同じような、ユーザーインターフェース系のドライバなので相互干渉してしまうのかもしれませんが、

少し残念ですね。

仮想化技術 ESXサーバへのSSHログイン手順と仮想マシンの停止

今日は、仮想化です。
仮想化って何?っていう人も居るかもしれません。
簡単にいえば、サーバの中に、「架空の」パソコンを入れてしまう技術です。
実体は無いんだけど、その架空パソコンの中で、Windowsとかが動くのです。
実体は、無いとはいえ、動くし、画面もネットワーク経由で見れる、というものです。
使い道は、いろいろあるんですが、まぁパソコン全体が一つのファイルになってしまっているので、
例えば、そのファイルをコピーすれば、パソコンのコピーができるわけです。
(実際にはそう簡単にいかないのですが)

その仮想化をやるために、じつは、ESXサーバというものを用意する必要があるのです。
そのESXサーバに対して、色々と作業をする際に、コンソール端末というものを使います(使わない方法も
ありますが)。

今回は、SSHでのTeraTermの接続手順です。

まず、ESXサーバのIPアドレスを指定し、SSHを選択します。
WS000065.jpg

すると、次のダイアログが出るので、「チャレンジレスポンス認証」を選びます。
ユーザIDは入力しておきます。
WS000066.jpg

OKを押すと、
WS000067.jpg
このようなダイアログが出るので、パスワードを入力します。

すると、
WS000068.jpg
このようにログインができます。

さて、ついでに、ゲストOSを、ESX管理コンソールから停止させてみましょう。

コマンドラインとしては、下記のように実施します。

vim-cmd vmsvc/getallvms
これで、仮想マシンのIDを調べます。
WS000069.jpg

上記例の上の方で、マシンIDをみていますが、1と2ですね。
今回は、Windowsの2を落としてみます。
vim-cmd vmsvc/power.shutdown 2
これで、ゲストOSの停止がスタートします。
(いきなり電源断ではなく、ちゃんと停止処理が動いてます)

停止が完了しました。
今度は、起動してみましょう。
WS000070.jpg

vim-cmd vmsvc/power.on 2
これで起動がスタートします。

まぁ仮想環境でWindows環境を起動しても、画面を見ない限りはちゃんと起動したかどうか判らないですし、
DHCPクライアントだったりすると、まずIPアドレスを調べないと(名前でログオンできればいいですが)いけない、ということで、
私は、仮想環境のWindowsに、自分のIPアドレスをメールしてくれるバッチファイルとvbsを置いています。

reportmail.bat


cscript sleep.vbs 30000
ipconfig /all > log.txt
cscript reportmail.vbs log.txt
cscript sleep.vbs 10000


これはタスクから呼び出されるbatファイルで、全体の流れを記述している。同じフォルダに下の2つのvbsと共に配置しておく。ちなみにsleep.vbsを使って、PC起動後30秒ほど待っているが、こうしないと ipconfig実行時にまだIPアドレスをDHCPサーバから貰っていなかったりする。


sleep.vbs


WScript.Echo "SLEEP START " & Now()
if WScript.Arguments.Count > 0 Then
WScript.Sleep WScript.Arguments.Item(0)
Else
WScript.Sleep 10000
End If
WScript.Echo "SLEEP END " & Now()


これは非常に簡単で、単純に「WScript.Sleep 10000」でもいいんだが、いちおう引数で待ち時間を指定できるようにしてあります(ミリ秒単位なので注意)。

reportmail.vbs


'定数の宣言
Const ForReading = 1 '読み込み
Const ForWriting = 2 '書きこみ(上書きモード)
Const ForAppending = 8 '書きこみ(追記モード)
Dim strFilePath
Dim strScriptPath
Dim objParm

'パラメタ情報の保存
Set objParm = Wscript.Arguments

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
strComputer = objNetwork.ComputerName


Set oMsg = CreateObject("CDO.Message")
oMsg.From = strUser & " "
oMsg.Subject = "Wakeup & IP Report " & strComputer & " "

Set objFileSys = CreateObject("Scripting.FileSystemObject")
'引数1 ファイル名
strFileName = objParm(0)
'このスクリプトのフォルダを取得
strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")
'ファイル名をセット
strFilePath = objFileSys.BuildPath(strScriptPath,strFileName)
'ファイルのオープン
Set objInFile = objFileSys.OpenTextFile(strFilePath,ForReading)
'ファイルのオープンが成功(ファイル有り)のときはErr.Numberが0
oMsg.TextBody = ""
If Err.Number=0 Then
'ファイルの全ての内容をガバっと取り出し
oMsg.TextBody = objInFile.ReadAll
'ファイルのクローズ
objInFile.Close
else
oMsg.TextBody = "ログファイルが見つかりません(" & strFilePath & ")"
end if
objShell.LogEvent 4, oMsg.TextBody
oMsg.TextBody = oMsg.TextBody & vbCrLf
oMsg.TextBody = oMsg.TextBody & "time : " & Now() & vbCrLf
oMsg.TextBody = oMsg.TextBody & "ComputerName : " & strComputer & vbCrLf
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.server.address.jp"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "sendusername@hoge.com"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"



oMsg.Configuration.Fields.Update

oMsg.To = "atesaki@hoge.gr.jp,atesaki2@hoge.gr.du"
retrycount=0
retrymax=10
do while senddone=0
on error resume next
ret=oMsg.Send
Select Case Err.Number
Case 0 'wscript.echo "メールを送信しました"
senddone=1
exit do
Case else 'Wscript.echo "エラーが発生しました。" & vbCrLf & "ERROR Detail "& Err.Number & ":" & Err.Description
if retrycount < retrymax then
retrycount=retrycount+1
'WScript.Echo "リトライします。"
WScript.Sleep 30000
else
'WScript.Echo "エラー、リトライ回数を超えました"
exit do
end if
End Select
Err.Clear
on error goto 0
loop


これは、メールを実際に送信するvbsです。巷でよく紹介されている、CDO.Message を使うパターンです。
ただ、SMTP認証に対応しています。
あと、送信失敗時、エラー処理として何回かリトライします。
ソースをみてみると、30秒インターバルを置いて、11回送信をチャレンジしてますね。
330秒だから、5分すこしは送信しようとする・・・
ま、LANの調子が多少悪いくらいなら頑張って送信してくれる?かもしれません。

Google-IME

Google-IME
まぁ最近、Googleを知らない人は、すくないのではないかと思いますが、
そのGoogleが、IMEを出しています。
IME(あいえむいー)って何?
あー、わからない人はわからないよね。
漢字変換する奴
のことです。
正確には確か、InputMethodEnvironment(入力手段の環境)みたいなものだったと思います。
パソコン、特にWindowsのパソコンを買うと、マイクロソフトが用意したIMEが付属してきて、
キーボードの「半角/全角キー」を押すと普通に日本語が入力できるので、
IMEを特別に意識したことがないと思います。
ですが、日本語を入力するのに非常に大事なのが日本語IMEなのですよ。
(中国や韓国にもそこの言葉のためのIMEがあるそうですが・・・)

ちょっと考えてみてください。
「あきはばら」と打って「秋は薔薇」って出てくるのを再変換するのと、
最初から「秋葉原」って出るのでは、(もし目的の語が秋葉原だったら)、かしこいIMEのほうが
少しだけ早く、目的の漢字に到達しますよね。
そういう変換の手間とかが積み重なって大きな効率の差となるので、
日本語IMEっていうのは、パソコンを使う時間が長い人にとっては非常に重要なものだったわけです。
そこで、昔から日本では、日本語IMEの開発が盛んでした(たぶん)。
いろんな会社や人が開発をしていたと思います。
それは、Windowsが流行る前からでした。
Windowsが一般に普及しはじめたのは、Windows95か、そのまえのWindowsNT、Windows3.1あたり?
(だいぶ幅広いですが)
でも、その前からパソコンもあり、ワープロ(いまのワードパッドとかワードみたいなもの)も使われていたので
日本語を入力する必要性はあったのです。
でもパソコンに最初から日本語IMEなんてついてなかったし、ネットもないので雑誌とかで調べて店で買うしかなかった。
金を出して買うからにはいいものが欲しい、というわけで、皆、変換にはこだわっていた・・・。
オバカな変換をするIMEは叩かれていたと思います(ネットなどないですが、パソコン通信というものがあって、
そういうコミュニティで叩かれていたと)。
その頃いろいろと開発されていたIMEは、たぶんなんやかんやでいろんなところに資産として継承されてはいると
思いますが、私が知っているのは、
ATOK
くらいですかね。オムロンとかあと、鼎(かなえ)とかもあったかな?なんか数種類あったと思いますが
マックには「ことえり」とかあったんでしたっけ?マック方面は詳しくない・・・
で、
ATOK
ですが。
読み方は、「エイトック」が正解らしい(開発元のジャストシステムは本社が徳島にあるので、
「阿波・徳島」を略して「アトック」というのは、間違った都市伝説だそうなのでご注意ください・・・
で、そのATOK、
日本人がずーっと開発してきているので、相当賢い、
マイクロソフトのIMEよりもずっと賢い、
そういう評価があり、こだわる人には、売れてきていたと思います。
まぁ漢字変換IMEだけで6000円くらいだったような気がします・・・なのでそれほど高いわけでもない。
恩恵を考えると、妥当な値段・・・
と思っていたのですが、
Goole-IME
これ、無料なんですよね。
で、いま、このブログの文章をまさにGoogle-IMEで記述しているわけなのですが、
んー、なんというか
まったく違和感がない。
マイクロソフトのIMEはとっくに凌駕されている気がします。
変換キーを2回以上押すことが少ないきが、しますが
どーいうことなんでしょうね・・・
もちろんATOKだと、
いろいろな示唆が出てきて、
「その日本語の使い方は、こうしたほうがいいよ」みたいな、ちょっと先生ちっくな指導まで受けられるんだけど
まぁそれは超高級IMEに思えてくるかも・・・
Google-IMEはネットワークから変換辞書(辞書っていっても、ひらがなに対する漢字変換のデータベースのことになりますが)を落としてきている、という話を聞いてますので、
世間の変換の傾向をそのまま享受できるらしいのです。
なので、はやりの言葉が変換候補の先頭に出てくるらしい・・・。

ちなみにインストールは、十四秒で終わりました。パソコンの再起動も必要なくすぐに終わります。
こんかいのこの文章を打つのに、かなり快適に入力することができたのは
なかなか優秀と言わざるを得ないと思います。

それもタダだからな・・・

ちょうど、いま、ATOKのバージョンアップのお知らせが出回っていると思いますが、
ここまでGoogle-IMEが賢いと、ちょっと考えてしまいそうですね・・・
(ATOKは好きなので、投資してもいいんですが・・・日本語は日本人のために守りたいというのもあるし)

仮装化環境でのLinuxディスク増設とファイルサーバ化

vmWareの仮装化環境は、意外と簡単に作れます。
お金もかかりませんし。

Linuxサーバをたてるならば、仮装化してもいいのではないでしょうか?

というわけで、仮想化ソフトですが、メジャーな vmWare にしました。
マイクロソフトのHyperVも有名ですが、ここは性能重視でVmWareに。

諸々はすっ飛ばして、現状の環境は、
ESXi5サーバ(ホストマシン)に対して、
ゲストOSとしてWindowsXPとUbuntu(Linux)を入れてあります。

この前、BUFFALOのNASが壊れたので、中身をLinuxに移動させることにしました。
NASは、1TBで半分近く使っていたので、500GBほどの領域がLinuxに必要ですが、
ホストマシンのディスクにそのような余裕がありません。
ディスクをヨドバシカメラ地下で購入してきました。
(余談ですが、ヨドバシカメラの地下で自作PCパーツを買うときは部品番号をメモしてレジに並べば良いんですね、知らなくて店員を捕まえて「商品出して!」ってお願いしたら、部品番号メモしてくれればいいんですよ、と教えてくれました・・・)。

ViClientをパソコン(PC)に入れておき、ESXをいったん落として、買ってきたディスクをSATAで接続し、
ESXを起動します。
ViClientで接続し、データストアを追加します。
そしてLinuxに割り当て。

ここまではOK.

Linuxを起動し、さぁLinuxに領域を追加、というところで色々と躓きました。
参考にしたサイトは下記の通り。
VMwareの仮想ディスクをLinuxでマウントして使う - adsaria mood
HDDを起動時からマウントしておきたい場合のfstabの書き方 (ubuntu 10.04) - 記録

というわけで私の方でもスクリーンショットをとっているので、記録を兼ねて解説。

まずはターミナル(Xterm)を開いて、

ls -ld /dev/sd*
を実行し、新たにディスクが増えているのを確認します(今回は、 /dev/sdb でした)。

このままではマウントできないので、fdisk でマウントできるように書き込みを実施します。
WS000054.jpg

ここまでは、fdiskの起動とヘルプですね。
実際に書き込みは以下のように、、、
WS000055.jpg
nキー(NEWの意味だと思う)で領域作成を選び、
pキーでプライマリパーティションを選びます(拡張パーティションにしない理由は、判りません!汗)
パーティションは複数作ることで1つのディスクを領域をわけてつかうことができますが、
今回は1パーティションに全領域を割り当てます。
WS000056.jpg
pコマンド(printの意だと思う)で、設定した値を表示させ、
wコマンド(いわずとしれたwrite)で、実際にディスクに書き込みを実施します。
wコマンドを実行するまでは、何度でもやり直しがききますが、wコマンド実行すると、
ディスクの中身は失われますので注意してください。

これでパーティションがきれたので、
/dev/sdb
/dev/sdb1
と、1がついたファイルが作成されています。

このあと、
mkfs -t ext4 /dev/sdb1
を実施します。
これ、少し時間がかかります。
あと、ext4にするのか、ext2,ext3などにするのかは、環境に依存します。
Ubuntuは、ext4が使えるので新しい方にしておいてます。
WS000057.jpg

mkfsでフォーマットしたら、mount でマウントします。

あとは、/etc/fstab にマウントを記述しておけば、再起動後は自動的にマウントされるようになります。

これでディスクは使えるようになりました。
次は、ファイル共有ですね。
WS000058.jpg
Ubuntuの場合、ファイル共有は、フォルダを表示させて右クリックで共有を選択すると、
勝手に「ファイル共有のためのパッケージ(samba:サンバ)」をインストールしてくれます。

これでファイルサーバのできあがり、となります。

ユーザによる書き込み制御等、いろいろしたいときは、

sudo passwd
で、rootのパスワードを設定し(Ubuntuの場合は、基本rootにパスワードが無いので、suできない。なのでsudoでpasswdコマンドを実行してrootにパスワードを設定してしまえば、suが使えるようになります)
rootになってから、chownとかchmodを使ってフォルダを設定していきましょう。

...続きを読む

メール送信

Linuxでメールをコマンドラインからサクッと送りたいとき
msmtp
を使います。

インストールは、apt-get 等で行って下さい。
メールをおくるために、ホームディレクトリに .msmtprc というファイルを作成します。
中身は、

account default
host smtp.mail.com
from mailaddress@mail.com
user userid
password password
auth cram-md5



という感じです。一行目のaccountと、最後のauth はおまじないです。他はメールソフトの設定をもってきます。
これで、次のようにコマンドを打つと、メールが飛んできます。
echo "HOGE" | msmtp -f me@mail.com atesaki@gmail.com
これだと本文がHOGEというだけのメールになってしまいますが…
上記では宛先は、  atesaki@gmail.com としていますが、もちろんこの宛先は架空のものなので、
自分が送りたいメールアドレスに書き換えてから実行してください。
また、 -f で指定しているのは、送り主のメールアドレスですので、これも自分のメール環境にあわせたもの
に変えます(正しく指定しないと身元詐称とみなされてメールサーバがメールを送ってくれないことがあります)。

ちゃんと、題名とか、宛先を書きたい場合は、テキストファイルを次のような形で作成します。

Subject:題名
From:自分のメールアドレス
To:相手のメールアドレス
本文

上記を例えば、mail.txtとして作成したとして、

cat mail.txt | msmtp -f me@mail.com atesaki@gmail.com

とすると、ちゃんとしたメールとして届けることが出来ます。



...続きを読む

タスク

タスク(仕事とか作業のひとかたまりを示す英語)という言葉は最近一般的に使われていると思いますが
(まぁ企業での話ですが)

Windowsにも「タスク」というのがありまして、
これは何をするかというと、例えば、

電源が入ったら、ファイルをコピーする

とか、

午前5時になったら電源を切る

等という、何時になったら何々をする、ということが設定できる機能なのです
(電源をいれたら、というのは時間は関係無しですが)。

一般の人はあんまり使わないと思いますが、
例えば子供さんが夜中まで延々とゲームをしてしまう時に設定を仕込む、という使い方はアリです。
(ただ、具体的にどうやるか、というのはじつはけっこうややこしいのでここでは詳細を記述しませんが)。

あとは、ネットワークディスクに、毎晩、デジカメ写真をコピーしてバックアップしておく、という使い方が考えられますね。
デジカメ写真の入ったパソコンのディスクがぶっ飛ぶ事を考えると非常に恐いですよね。
なので、パソコンのデジカメ写真フォルダを毎晩別のディスクにコピーしておけば安心。
2カ所にデータを保持しておけば、どっちかが壊れても大丈夫ですから。

※ただ、東北の震災のようなことを考えると、家の中でコピーを持っていても、両方ともなくなってしまう可能性があるわけで、理想を言えば、遠く離れた地域に住む誰かの家にもディスクがあってそこに毎晩コピーできると安心なんですが、そんなことは難しいですよね…。中身見られるとか毎晩コピーしても一日で終わらないとか色々懸念があって。最近流行りのネットワーク上の無料ディスクサービスも、中身見られるという噂がありますし(噂です、あくまで。真相はわからないし、利用規約上秘密保持を記載していないだけかもしれません)。

Linuxの場合もタスクはあります。
コマンドは、クーロンといい、
crontab -l
で設定を表示、
crontab -e
で設定画面(単にエディタが起動するだけですが)になります。
実態は、crond というデーモン(Windowsでいうサービス、影で働く黒子)が、
指定時間になったら処理を呼び出したりします。

crontab の記載方法は、
分△時△日△月△曜日△コマンド
を書きます。指定したくない場合は、「*」を指定します。
例えば、
5 * * * * /home/hoge/command.sh
と記載すると、毎時5分(00:05,01:05,02:05,03:05,04:05~22:05,23:05)に
/home/hoge/command.sh
というコマンドを実行します。
/home/hoge/command.shの中身にやってほしい仕事を書いておけばいいわけです。
また
0 5 * * * /sbin/shutdown -r -y 0 > /dev/null 2> /dev/null
みたいに書いておくと毎朝5時にLinuxパソコンを再起動できます(たぶん。コマンドの部分はあくまで例なので試行錯誤してみてください)

0 12 1 * * /hoge/hoge
だと、毎月1日の12:00に /hoge/hogeを実行します。
あと面白い書き方があって、
@reboot /hoge/hoge2
とかくと、電源投入後に一回だけ、hoge/hoge2を実行させる、という指定ができます。

...続きを読む

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。