皆さんご存知の通り、私はただの普通のエンジニアですが、仕事と同僚がずっと便利になるように常に努力しています。
すべてのITプロフェッショナルは、プロセス実行の自動化などのタスクに精通していると思います。 そのため、レジのソフトウェアを使用して作業する過程で、リモートアクセスとキャッシュデスク管理、および多くの手順の自動化に関連する多くの日常的な手順に直面する必要がありました。
私自身はプログラマーではありません。 彼はVB、VBA、JavaScript、PHPを学んだという事実にもかかわらず、これらはすべて学生のベンチに残っていました。
ですから、エンジニアとして、毎回同じことをして時間を無駄にすることにうんざりしています。 そして、私は、最小限のプログラミング知識で、日常業務のレジをサポートするためのある種の自動化ツールを作成することは可能かと自問しました。
検索に向かった...
それで、何が見つかりましたか?
1. MediaChance Multimedia Builderは、CDの自動実行アプリケーションを作成するためのプログラムです。 残念ながら、新しいバージョンのリリースは2007年に既に停止していますが、一部の愛好家はさまざまなチップを作り続けています。 そのようなプログラムはたくさんありますが、この環境で気に入ったのは、独自のスクリプト言語を持っていることです。私の意見では、この言語は簡単に習得でき、プラグインもたくさんあります。
2.バッチスクリプトは、Windowsコマンドラインスクリプト言語です。つまり、batファイルのアクションを自動化できます。 また、自分自身からも付け加えます。他の人にとってはどうすればいいかわかりませんが、それを習得してMultimediaBuilderと組み合わせるのも難しくないことがわかりました。
3.まあ、PuTTyとPLinkに加えて。 -これらは、SSHプロトコルを介した* nixシステムへのリモートアクセス用のユーティリティであることは誰もが知っていると思います。
そのため、当社では、店舗用のサーバーソフトウェアとキャッシュプログラムを使用しています 。 しかし、作業の過程で皆さんが理解しているように、店舗にリモートで接続する必要がある状況が発生します。
私は自分の人生を少し簡素化することに決め、この問題を解決するユーティリティを開発しました。 驚いたことに、私の同僚はこのユーティリティを気に入っており、現在では当社のエンジニアの間で非常に需要があります。
繰り返しになりますが、私はプロのプログラマーではないため、正しい最適化とコードの作成という点で次のような批判が受け入れられ、奨励されています。
タスク:非常に頻繁に、Linuxの下で実行されるキャッシュデスクをリモートで再起動する必要があります。
Multimedia Builderでプロジェクトを作成し、その中にいわゆる埋め込みオブジェクトを実装します。
![](https://habrastorage.org/files/665/700/a90/665700a900b2446a85248ca0979cee15.png)
ボタンで、bat-fileを起動するイベントを終了します。このイベントは、パラメーターを指定してplink.exeを実行します。 結果は次のような単純なプログラムです。
![](https://habrastorage.org/files/b21/676/5f5/b216765f5859469d9fca827ac3c8a36b.png)
Multimedia Builderで埋め込みファイルを実行するとき、プログラムを開くと、すべての埋め込みファイルが自動的に一時ディレクトリに展開され、そこから起動されることに注意してください。
![](https://habrastorage.org/files/9aa/280/7eb/9aa2807eb00347e09328765923a8debe.png)
ボタンをクリックすると、batファイルから最も単純なコードを実行する行が表示されます。
SET /p ipcash=Enter CashIP: plink.exe tc@%ipcash% -pw "12345" "sudo /sbin/reboot"
![](https://habrastorage.org/files/b67/ce7/518/b67ce75185fa41fe9f25dcc77d405e6f.png)
たぶん多くの人にとっては当たり前のことを言っていることは知っていますが、私にとっては、自動化の基礎を学んだ人として、これは今でも興味深いものです。
次に何をしましたか? -それは非常に簡単です。私はそれを企業のリソースに投稿し、同僚にそのようなことがあるという手紙を送りました。
そして、あなたはどう思いますか? -人々は使い始め、それに応じて、ウィッシュリストが現れました。
繰り返しになりますが、バッチスクリプトをbashスクリプトなどに記述する方法について、そのようなものを作成するとき、最初からすべてを理解していたことに注意してください。
さて、次のバージョンはすでに出てきました。 つまり、2つのボタンがすでに表示されています。
![](https://habrastorage.org/files/6c5/e5e/c0e/6c5e5ec0eebe4834a641feb640cd428c.png)
そしてそれは消えた。 さらに、リモート接続で作業するプロセスの自動化をさらに詳しく調査するプロセスに踏み込んだほど、何かをする方法を自分で考えたほど、サポートがより便利になった方が良いことは注目に値します。
次のバージョンが再び登場しました。
![](https://habrastorage.org/files/462/071/51f/46207151faec405981c87192982b583c.png)
そして次のバージョン:
![](https://habrastorage.org/files/1a3/ec0/888/1a3ec0888bc74da9a7faaf851db8ca66.png)
そして次のバージョン:
![](https://habrastorage.org/files/097/f46/d46/097f46d46e2a41f883b6473681ba36b0.png)
そしてバージョンごとに、興味と私の知識の成長。
その後、インストールパッケージの実行方法を学び、プログラムはインストーラーを受け取りました。
![](https://habrastorage.org/files/196/e96/633/196e96633abd44f5ae811abdcd22b24b.png)
さて、機能が追加されました:
![](https://habrastorage.org/files/cb3/423/5bd/cb34235bd6d6430db9b8f5a0ff2a8cd1.png)
そして今、2年後、それは次のようになります:
![](https://habrastorage.org/files/96e/03c/c44/96e03cc446274059ad95fc731525dc41.png)
![](https://habrastorage.org/files/ba9/dfe/a39/ba9dfea3955b4c3ba182d51dd48ec016.png)
![](https://habrastorage.org/files/a3e/dbf/f87/a3edbff87fb24f39a76883ad3dc9cbd2.png)
これは、サーバーとレジを管理するための優れたツールであると言えます。 私自身はそのようなことを書くことができるとは思っていなかったでしょう。
残念なことに、私の指は単純な趣味または自分自身に対する質問から始まったため、残念ながら私の指には十分な力がありませんでした。Linuxでコンピューターをリモートで再起動するにはどうすればよいですか(Linuxにはレジがあります)?
あなたが上で見た4年でそれが変わったもの。
しかし、ここで、たとえば、すべてを実装する方法を共有しましょう。
それで、あなたが見たキャッシュデスクのリストとのインターフェース、今はいくつかの機能の実装について。 私はアマチュアと言えることをすぐに繰り返し、すべてをゼロから理解したので、プロからの批判やコメントは大歓迎です。
1. Ping
私はすぐに空想で、ボタンをクリックすることでレジにpingを実行すると同時に、特定の色で強調表示されるようにしたかったのです。
![](https://habrastorage.org/files/80f/12e/c43/80f12ec436664844ba80ba45ca4a3191.png)
ここにそのようなことを蓄積しました:
srok1$=cs1$ File1$='cashes/01c.txt' Rv1=StrToFile(File1$,srok1$,FALSE,FALSE) clear$='' srok1$='For /F "Delims=" %%I In (01c.txt) Do Set c01=%%~I' srok2$='Ping -n 1 -w 1 %c01% >nul' srok3$='If %ErrorLevel%==0 (' srok4$=' <nul set /p strTemp=a>c01ping.txt' srok5$=') Else (' srok6$=' <nul set /p strTemp=n>c01ping.txt' srok7$=')' File3$='cashes/c01ping_mmb.bat' Rv=StrToFile(File3$,clear$,FALSE,FALSE) Rv=StrToFile(File3$,srok1$,TRUE,TRUE) Rv=StrToFile(File3$,srok2$,TRUE,TRUE) Rv=StrToFile(File3$,srok3$,TRUE,TRUE) Rv=StrToFile(File3$,srok4$,TRUE,TRUE) Rv=StrToFile(File3$,srok5$,TRUE,TRUE) Rv=StrToFile(File3$,srok6$,TRUE,TRUE) Rv=StrToFile(File3$,srok7$,TRUE,TRUE) Run("<SrcDir>\cashes\c01ping_mmb.bat","HIDE") Pause("1000") path1$ = 'cashes/c01ping.txt' col1$='0,255,0' col2$='255,0,0' LoadText("r1$","FILE:path1$") If (r1$='a') Then SetObjectParam("bt1","BGCOLOR=col1$") Else If (r1$='n') Then SetObjectParam("bt1","BGCOLOR=col2$") End End
一番下の行は、「ping」ボタンをクリックするとすぐに、アドレスが存在するこのフィールドのファイルにIPアドレスが書き込まれるということです。 次に、バッチファイルのコードを生成します。これにより、テキストファイルからIPアドレスが読み取られ、実行されます。 バッチファイルの結果に基づいて、応答ファイル「n」または「a」が生成され、これに応じて、すでに結果を読み取ってボタンをペイントします。 はい、もちろんアマチュアですが、動作します。
2.ユーザー名とパスワードを入力せずにputty.exeを実行します。
![](https://habrastorage.org/files/582/26b/b88/58226bb88f044109bea0f6bfe7a1dbb4.png)
PuTTyを標準的な方法で接続する場合は、ユーザー名とパスワードを入力する必要があることを皆さんはご存知でしょう。 多くの場合、当社のサービスでは、ほとんどの場合、デフォルトでレジと、原則としてユーザー名とパスワードにすばやく接続する必要があります。
PuTTyを実行すると、次のようになります。
![](https://habrastorage.org/files/ebd/a78/4ba/ebda784bae954f8fb178ffac43c4f5af.png)
しかし、私は、このようにしないと考えました:ボタンをクリックして、すぐにSSHコマンドラインを開きました。
以下にそのようなアマチュアコードを示します。
srok1$=cs1$ File1$='cashes/01c.txt' Rv1=StrToFile(File1$,srok1$,FALSE,FALSE) clear$='' srok01$='For /F "Delims=" %%I In (cashes/01c.txt) Do Set c01=%%~I' srok02$='REG ADD HKCU\Software\SimonTatham\PuTTY\Sessions\%c01% /f' srok03$='REG ADD "HKCU\Software\SimonTatham\PuTTY\Sessions\%c01%" /f /v HostName /t REG_SZ /d %c01%' srok04$='REG ADD "HKCU\Software\SimonTatham\PuTTY\Sessions\%c01%" /f /v LineCodePage /t REG_SZ /d UTF-8' srok05$='echo y | plink.exe tc@%c01% -pw "12345" exit' srok06$='putty.exe -load %c01% tc@%c01% -pw "12345"' File3$='run_putty.bat' Rv=StrToFile(File3$,clear$,FALSE,FALSE) Rv=StrToFile(File3$,srok01$,TRUE,TRUE) Rv=StrToFile(File3$,srok02$,TRUE,TRUE) Rv=StrToFile(File3$,srok03$,TRUE,TRUE) Rv=StrToFile(File3$,srok04$,TRUE,TRUE) Rv=StrToFile(File3$,srok05$,TRUE,TRUE) Rv=StrToFile(File3$,srok06$,TRUE,TRUE) Run("run_putty.bat","HIDE") RunScript("ssh_log_1")
ロジック:
- IPアドレスをテキストファイルに書き込みます。
- 次に、バッチファイルを生成します。
- 起動すると、IPアドレスがバッチファイル変数に代入されます。
- セッションがレジストリに追加されます。
- PuTTy.exeはセッションを開きます。
そして出来上がり:
![](https://habrastorage.org/files/9fa/22c/bd5/9fa22cbd58024762b6975cf3a0c29c8b.png)
3.リモートVNCサーバー。
また、キャッシュデスクでは、VNCサーバープロトコルを介したリモート接続の可能性があるため、レジ係が何をしているのかを見ることができます。
このために、Real VNC Viewerを使用しました。
次に、このコードを取得しました:
srok1$=cs1$ File1$='cashes/01c.txt' Rv1=StrToFile(File1$,srok1$,FALSE,FALSE) clear$='' srok01$='For /F "Delims=" %%I In (cashes/01c.txt) Do Set c01=%%~I' srok02$='rem SET /p ipcash=Enter CashIP for run remote DeskTop:' srok03$='echo n | plink.exe -v -ssh tc@%c01% -pw "12345" -m rdp_vnc_cmd.txt' srok04$='vncviewer.exe %c01%' File3$='rn_vnc_mmb.bat' Rv=StrToFile(File3$,clear$,FALSE,FALSE) Rv=StrToFile(File3$,srok01$,TRUE,TRUE) Rv=StrToFile(File3$,srok02$,TRUE,TRUE) Rv=StrToFile(File3$,srok03$,TRUE,TRUE) Rv=StrToFile(File3$,srok04$,TRUE,TRUE) Message(" . .","") Run("rn_vnc_mmb.bat","HIDE") RunScript("vnc_log_1")
ロジック:
- IPアドレスをテキストファイルに書き込みます。
- このテキストファイルからIPアドレスを読み取るバッチファイルを生成します。
- 次に、vncviewer.exeが起動され、セッションが読み取られます。
さて、実際にセッションが開きます:
![](https://habrastorage.org/files/7cf/b5d/093/7cfb5d0933f7423198fe42f4a70b6584.png)
そのようなもの。
実際、ローションはまだたくさんあります。
![](https://habrastorage.org/files/361/9c1/98d/3619c198d525441ab39fb51b1aa6933c.png)
そして今、私はすべてを勉強し始めたので、2年後にすでにすべてこのように見えます:
![](https://habrastorage.org/files/ba3/f7e/753/ba3f7e75338d42dca70527e6f6c17a4a.png)
そしてもちろん、イースターエッグがないわけではありません。 最近、私が1つやったことがあります。誤ってどこかでマウスをクリックすると、秘密のセクションにいることに気づきます。そこには、さまざまな種類のチップがたくさんあります。
![](https://habrastorage.org/files/0b7/d26/f90/0b7d26f9035c45d28f164bbc7bf5051d.png)