英語フランス語スペイン語

Ad


OnWorksファビコン

料理-クラウドのオンライン

Ubuntu Online、Fedora Online、Windows Onlineエミュレーター、またはMACOSオンラインエミュレーターを介してOnWorks無料ホスティングプロバイダーでディッシュを実行します

これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドディッシュです。

プログラム:

NAME


ディッシュ-複数のホストの並列システム管理者のためのツール

SYNOPSIS


[オプション] ... -e command {-NS ホストファイル | ホスト_1 ホスト_2 ...}
ディップ {-NS ホストファイル | -g "user @ host_1 ..."} ローカルファイル :remote_file
ディップ {-NS ホストファイル | -g "user @ host_1 ..."} :remote_file ローカルファイル

DESCRIPTION


ディッシュ-勤勉シェルは、ssh / rsh / telnetを介して複数のホストでコマンドを実行し、また
scp / rcp、リモートパスワード変更などによるファイルの配布を容易にします。
並列モードでホストを処理します。

OPTIONS


-h すべてのコマンドラインオプションを簡単に説明するヘルプメッセージを印刷する

-H、 - ヘルプ
例を含む包括的なヘルプ

- バージョン
プログラムのバージョンと著作権メッセージを印刷して終了します

-V バージョン番号を表示して終了します

-C
構成ディレクトリ-$ HOME /.dishがデフォルトです。 このディレクトリにあります
次の構成ファイル:「hosts」、「rests」、「pass」、および「options」。 使用する場合、
このオプションは、コマンドライン文字列の最初の引数であるか、XNUMX番目の引数である必要があります
`-D 'を選択した場合はXNUMXつ! または、次の方法で構成ディレクトリを指定することもできます。
環境変数DISH_CONFを定義します。

-CC
`-C 'と同じですが、ローカル設定が見つからない場合はデフォルトにフォールバックします。 この意味は、
ファイル 'pass'、 'options'、または 'rests'が指定されたディレクトリにない場合、
ただし、そのようなファイルは$ HOME / .dishに存在し、後者が考慮されます。 唯一の
例外は「$ HOME / .dish / hosts」です。これは無視されます。 このオプションの使用は
ディレクトリを選択したディレクトリに変更してから `dish 'を実行するのと同じです。

-c
プログラム(別名「コネクタ」)とリモートへの接続に使用されるそのオプション
host(s)-たとえば `rsh '、生成されたプロセスは" rsh $ host "。
デフォルトのコネクタは `ssh 'です。 さらに、関連するテキストベースのクライアントを使用することによって
コネクタとして、スイッチやデータベースなど、さまざまな種類のホストにアクセスできます。
に。

-e
実行するリモートコマンド。 また、環境変数DISH_CMDによって設定することもできます。

-E
接続部分も指定されているコマンドを実行します。例: "-E'ssh $ host
「-edate」と等しいdate '"。このオプションは` -c'および
`-e '。 また、環境変数DISH_FUEXEによって設定することもできます。

-t sshで疑似ttyの割り当てを強制します。 これはパスワードの場合に自動的に行われます
変更します。

-T
コマンド実行のタイムアウト-デフォルトは30秒(ホストあたり)

-TT
コマンド実行の合計タイムアウト-デフォルトは300秒(すべてのホスト)。 このオプションは
ホストが順番に処理され、合計処理時間がかかる場合にのみ役立ちます
指定された上限を超えてはなりません。

-x
シェルプロンプトの正規表現。 この値は、どのプロンプトになるかを指定します
`telnet '、` mysql'によってシステムにログインした後、プログラムのシェルで予期されます。
`sqlplus 'またはその他の対話型コマンドラインクライアント(` -c'を参照)。 デフォルト値
は `(%| \ $ |#| \>)?$ 'です。

-X
パスワードプロンプトの正規表現。 デフォルトでは大文字と小文字は区別されません
値 `パスワード:* $ '。

-広告
新しいホストキーを追加するためのsshプロンプトの正規表現-`connecting
(はい/いいえ)?。* 'がデフォルトです

-AC
新しいホストキーを追加するためのssh-promptへの回答を含む文字列-`yes 'がデフォルトです

-g
ターゲットとするホスト/ IP /アカウントのリストを含むファイル。 コマンドはで実行されます
これらのターゲット。 デフォルトのホストファイルは「$ HOME / .dish / hosts」です。通常はXNUMX行にXNUMXつずつです。
「user @ host」形式のアカウント(コネクタにsshを選択した場合)。 そうするには
参加リストはこのオプションを繰り返し使用します。 または、環境変数
DISH_HOSTSを使用してターゲットホストを定義できますが、指定された文字列では
それらは空白で区切る必要があります。 このオプションを `-r 'または` -i'と組み合わせることにより、
ターゲットホスト/アカウントのさまざまなサブセットを定義できます。

-r
除外する休止ホスト/アカウントのリストを含むファイル。 デフォルトは
'$ HOME / .dish / rests'。 「休憩ホスト」とは、
ターゲット。 休止ホストのリストまたはファイル名は、
環境変数DISH_RESTS。

-i
ターゲットホストとオーバーラップするホスト/アカウントのリストを含むファイル。 ありません
デフォルトファイル。 このリストに含まれていると同時に重複しているホストのみ
ターゲットとして定義された時間が処理されます。

-u
ユーザー名-デフォルトはローカルユーザー名です。 それはまたによって定義することができます
環境変数DISH_USER。 内部的には、変数から値にアクセスできます
$ user(例を参照)。 さらに、フォームのアカウントが
「user @ host」はすでにユーザー名が含まれているため、処理されます。

-p
ログインパスワード(-p "" = -pp = -a0)-エイリアス "loginauthentic"または "a0"; いいえの場合
ログインの認証が必要です(ユーザープロンプトもパスワードプロンプトも表示されません)。
パスワードとして `/ dev / null 'を使用します。 ユーザー名が要求されても、パスワードは
空の文字列の場合、パスワードとして「/ dev / empty」を指定する必要があります。 これの価値
オプションはパスワードファイルにすることもできます(「-P」を参照)。 最終的には、
環境変数DISH_PASSによるパスワード。

-a
認証用の追加パスワード(-a "" = -aa = -a1)-alias "first
本物の」または「a1」;スポーンプロセス内で、「smbmount」、「su」などのプログラムの場合、
`ssh 'などが認証を要求すると、a1-passwordが渡されます。 このパスワード
環境変数DISH_PASS1でも設定できます。

-A
認証用のもう2つのパスワード(-A "" = -AA = -aXNUMX)-エイリアス "secondauthentic"
または "a2"; 生成されたプロセスが、a1-passwordによるXNUMX回の認証の後、
再度パスワードを入力すると、a2が送信されます。 このパスワードは、
環境変数DISH_PASS2。

-n
パスワード変更の場合の新しいパスワード(-n "" = -nn = -ne)

-p0 認証なしでログイン-`-p / dev / null 'と同じ

-p1 a1-passwordをログインパスワードと同じに設定します。 このオプションはすべきではありません
`-p0 'および` -a1'と一緒に使用されます。 以下の例d)を参照してください。

-P
パスワード付きのファイル。 デフォルトのパスワードファイルは「$ HOME / .dish / pass」です。 それは違いない
ユーザーのみが読み取り可能(ファイルモード600または700)、それ以外の場合、プログラムは次のように終了します。
エラーが発生しましたが、次のオプションも参照してください。 ファイルのすべての行にパスワードエントリを含めることができます
次の形式の場合:「password:username:hostname」、または
「password ::: username ::: hostname」、または「password ;;; username ;;; hostname」。 XNUMXつができます
`、 'または`;'で区切られたホストのリストを指定します文字。 正規表現
ホスト名も許可されます(の構成ファイルの例を参照してください
分布)。

-m パスワードファイルのアクセス許可を無視する

-s [ ]
ホストの順次処理(デフォルトモード)。 時間間隔の場合(
フローティング秒)が指定されている場合、プログラムはこの時間待機します
シーケンス内の次のホストの処理を開始する前。

-F バックグラウンドでプロセスを生成します-フォークして切断します。 このようにして、すべてのホストは
基本的に並行して処理されます! それは非常に強力なオプションです-あなた次第です
RAMサイズとメモリ使用率、いくつかを処理することは問題ではないはずです
何百ものホストが並行して。 とにかく、注意してください-ホストが多すぎる場合
リスト、あなたはあなたのシステムに負荷をかける可能性があります。 背景の標準
プロセスは「/ dev / null」にリダイレクトされますが、「-l」または「-L」を使用して書き込むことができます
ファイルへの出力。 マニュアルページの「バグと既知の問題」も参照してください。

-f ttyから切断せずにバックグラウンドでプロセスを生成します。 `-F 'と同じです
一方、生成されたプロセスの標準出力は端末に送信されます。 また、
親プロセスは、子が終了するのを待ちます。 「バグと既知の問題」も参照してください。
マニュアルページで。

-q 静かにしてください-スポーンとログインからの出力をスキップしてください。 セキュアシェルを使用する場合は、
`-q 'オプションで` ssh'を使用するのも便利です。

-Q 静かにする-出力をスキップする

-v 冗長にする(デフォルト)-`-q 'と `-Q'をオーバーライドします

-l
コマンド出力をファイルに記録します。 生成されたプロセスの出力は、
ファイルにソフトウェアを指定する必要があります。

-L
ホストごとに個別のログを書き込みます。 ログのベース名を示します
ファイル。 ログファイルのフルネームは「 _ 。ログ"。

-j 呼び出されたコマンドを「$ HOME / .dish / journal」という名前のジャーナルファイルに記録します。
実行されたコマンドの履歴とその実行時間を保持します。 NS
一意の識別子はすべてのコマンドに関連付けられています。

-J 呼び出されたコマンドと生成されたプロセスも記録します。 に書き込みます
実行されたコマンドと、生成された単一のプロセスおよびそれらのジャーナルファイル
実行時間。

-o
プログラムに渡されるコマンドラインオプションを含むファイル-デフォルトは
'$ HOME / .dish / options'; オプションは、ファイルごとに分けて書き込む必要があります。
ライン。 このファイルを使用して、標準構成を変更できます。フォークを設定します。
モードをデフォルトにする、デフォルトのコネクタを変更するなど。 で働くとき
「コピーモード」、つまりプログラムを「dicp」として呼び出すことにより、「$ HOME / .dish /options.dicp」は
デフォルトのオプションファイルと見なされます。

-d expectの診断出力を有効にします( `manexpect 'を見てください)

-D デバッグモード(ドライラン); 環境変数、構成ファイル名、および
実行するコマンドを実行してから終了します。 このオプションは、コマンドの最初に使用する必要があります
ライン。


変数$ hostと$ userが評価されることを考慮する必要があります。 したがって、$ hostが変更されます
新しいプロセスが生成される前に、その値を実際のホスト/アカウント名に動的に割り当てます。 NS
$ userについても同じことが言えます。

a)ホスト192.168.0.1と192.168.0.2の日付と稼働時間を確認します

ディッシュ-e '日付\; 稼働時間」 [メール保護] [メール保護]

b)「。profile」と「.bashrc」を「host1」と「host2」のゲストアカウントに配布します

ディッシュ-E "scp $ HOME / .profile $ HOME / .bashrc guest @ \ $ host:" host1 host2

or

dicp -e "$ HOME / .profile $ HOME / .bashrc guest @:" host1 host2

or

dicp -g "host1 host2" $ HOME / .profile $ HOME / .bashrc guest @:

or

dicp -g "guest @ host1 guest @ host2" $ HOME / .profile $ HOME / .bashrc:

c)リモートの「.profile」ファイルをローカルホストのローカルディレクトリにコピーします

dicp -g "guest @ host1 guest @ host2 admin @ host2":。profile.profile。\ $ host

ここで、ターゲットファイル(ローカルファイル)の名前には、リモートアカウント名が含まれます
ローカルファイルに一意の名前を付けるため。

d)「ssh」を使用して「host1」にログインし、そこから「.profile」を「host2」にコピーします

ホストのリストを空にすることはできないため、ダミーホストを使用してホストを開始します。
処理する。 `ssh 'で疑似ttyの割り当てを強制するには、` -t'オプションが必要です。
そうしないと、 `ssh 'はログイン時にエラーで失敗します。 1番目のパスワード(aXNUMX-password)は
'host2'でのscp認証に必要:

ディッシュ-a '' -E'ssh -t user1 @ host1 scp .profile user2 @ host2: 'ダミーホスト

'user1'と 'user2'のパスワードが同じ場合は、
`-p1 'を使用する場合、user1 @ host1のログインパスワードにXNUMX回:

ディッシュ-p1-E'ssh -t user1 @ host1 scp .profile user2 @ host2: 'ダミーホスト

または同等に、そしてより単純です:

ディッシュ-p1-t -e'scp .profile user2 @ host2: 'user1 @ host1

e)/etc/rc.configの行を `START_XNTPD = 'で` START_XNTPD = "yes"'に置き換えます

このコマンドは、「Hosts.root」にリストされているすべてのホストでrootユーザーとして実行されます。

ディッシュ-uroot -E'ssh $ user @ $ host "perl -pi -e
\ "s / ^ START_XNTPD =。* \ $ / START_XNTPD = \\\" yes \\\ "/ g; \" /etc/rc.config "'-g Hosts.root

f)終了リストのユーザーのアカウントを凍結する

`FreezeUser.sh 'と呼ばれるスクリプトを使用することにより、
'Terminate.User.lst'は、両方のサーバーグループで本日24:00に凍結されます。
ファイル「Hosts.1」および「Hosts.2」で定義:

ディッシュ-E'ssh root @ $ host "cat Terminate.User.lst |国連を読んでいる間;エコー\" su-
admin -c \\\ $ HOME / bin / FreezeUser.sh \ $ UN \ "| 24:00;完了" '-g Hosts.1 -g
ホスト.2

g)オートマウンターのリモート構成ファイルを印刷します

ホスト192.168.0.1で「admin」ユーザーとしてログインし、「root」に切り替えてから、ファイルをcatします。
'/etc/auto.net'と日付を出力します。 `-a 'オプションは、プログラムに尋ねさせます
リモートホストのrootパスワードの場合:

ディッシュ-uadmin -a '' -E'rsh -l $ user $ host su --root -c \ "cat /etc/auto.net \;
日付\ "'192.168.0.1

h)Debian GNU / Linuxホストにパッケージをインストールする

Sambaにファイルサーバーをマウントした後、そこからdebianディッシュパッケージをインストールします
実行中のすべてのサーバーですが、メンテナンス時にホストをスキップします。 XNUMXつの異なるパスワードは
認証に必要-XNUMXつはログイン用、次はsu-root用、最後は
ファイルサーバーのマウント:

ディッシュ-a0-a1 -a2 -g Debian.up -r Debian.maint -e'su --- c \ "mount -t smbfs
//FILESERVER/Packages.Dir / mnt / smb; dpkg -i /mnt/smb/dish_1.19.1_all.deb \ "'

i)デフォルトの「hosts」および「pass」構成ファイルを使用して、システム負荷が2より大きいかどうかを確認します

ディッシュ '(稼働時間| egrep \ "(\ [2-9 \] | 1 \ [0-9 \])\\。\" &&ホスト名)|貼り付け---'

j)リモートホスト10.0.0.1上のMySQLデータベースをクエリします

ディッシュ-pp-c'mysql -p -u $ user -h '-e'use mysql; テーブルを表示します。 ユーザーを説明する;」 -u
ルート10.0.0.1

k)すべてのホスト/アカウントで同時にパスワードを変更する

ユーザーアカウントのリストがファイル 'Accounts.lst'に含まれていることを前提としています。
一方、リストのエントリは「user @hostname」の形式です。 コマンド後
実行すると、最初にログインパスワード(古いパスワード)の入力を求められ、次に
最終的に正しく再入力する必要がある新しいパスワードの場合:

ディッシュ-p '' -n '' -e passwd -g Accounts.lst

または、すべてのホストを同時に静かに処理します。

ディッシュ-pp-nn -f -Q -e passwd -g Accounts.lst

パスワードを変更して `-nn 'を使用する場合、a1-passwordは暗黙的に
ログインパスワード(a0-password)と同じに設定します。

l)「root」アカウントからパスワードを変更します(「-a0」オプションは使用しないでください)

'remotehost'のrootパスワードを変更する場合は、次のことを試してください。

ディッシュ-nn-e passwd root @ remotehost

前と同じですが、ユーザー 'admin'(ログインパスワード)としてログインし、に切り替えます
'root'(a1-password)、そして最後にroot-passwordを更新します:

ディッシュ-a1-nn -e'su -c passwd 'admin @ remotehost

「root」としてログインした後、「localhost」で「admin」のパスワードを変更する
`telnet 'は、次の方法で実行されます。

ディッシュ-nn-c telnet -u root -e'passwd admin 'localhost

パスワード変更の場合、 `-p" "'(または同等に` -a0'または `-pp ')がそうでない場合に注意してください
明示的に使用すると、 `passwd 'は古いパスワードを要求しないと想定されます。
'root'によるパスワード変更の場合のように。 ログインできる場合も同様です。
パスワードを入力せずにアカウントを作成しますが、 `passwd 'は古いパスワードを入力するように求めます-
この状況は、ログインにsshキーを使用せずに使用している場合に発生します。
パスワード認証。 このようなシナリオの場合、オプションの正しい選択は `-p0 -aa -nn 'です。

'$ HOME / .dish'で適切に準備された構成ファイルの場合、dishを
ホストの仮想クラスター用の分散シェルであり、指定せずに実行します
プログラムパラメータですが、たとえば `dish df -k / 'や` dicpのようにコマンドを発行するだけです。
.profile: '。

最後の注意として、パスワードによる認証の場合、
ディッシュの自動ログインプロセスは、ログインプロンプトがに送信するという期待に基づいています
端末には、大文字と小文字を区別しない正規表現文字列 `Password:* $ 'が含まれます(ただし、「
`-X ')。 そうしないと、認証手順が失敗します。

onworks.netサービスを使用してオンラインで料理を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad