macOSでSSHを接続してローカルスクリプトを実行するBashスクリプト

macOSでSSHを接続してローカルスクリプトを実行するBashスクリプト

次のコマンドを使用して、リモートmacOSへのSSH接続を開始します。目標は、SSHログインを正常に実行し(mount.shスクリプトを介して)特定のネットワーク共有をマウントすることです。リモートのmacOSでmount.shスクリプトを保存して実行すると、正常に動作します。スクリプトはユーザー入力を受け取り、カスタムマウントポイントにインストールします。ただし、SSHを介してリモートシステムでローカルにscript-mount.shを実行しようとするたびに動作が停止します。

実際、sshログインはうまく機能しますが、script-mount.shは実行されません。

 #!/bin/bash

read -p "Enter  Username: " username
    ssh $username@<Server IP> "$(< mount.sh)"

コードを改善するためのすべての提案/提案を歓迎します:)。

mount.shスクリプトコード:

    #!/bin/bash
read -p "Enter the name of share mount :" lpmount
echo ""
read -p "Enter your  User name: " username
echo ""
read -p "Enter the year (e.g. 2018,2019) :" year
mkdir /Gross/$lpmount
mount_smbfs //$username@<Server-IP>/Evi/$year /Gross/$lpmount
mount_status=$? # Checks if the mounting was successfull.
if [ $mount_status -eq 0 ]
then
        echo ""
        echo "Share mounted SUCCESSFULLY! at /Gross/$lpmount"
        sleep 3
else
        echo ""
        echo " Share not mounted SUCCESSFULLY! at/Gross/$lpmount"

fi

答え1

説明する:

bash -sスクリプトを処理するオプションを追加できます。下記の修正をご覧ください。

改訂する:

#!/bin/bash

read -p "Enter  Username: " username
    ssh $username@<Server IP> 'bash -s' < mount.sh

関連情報