BETA

ラズパイにSSH接続してファイルを設置するシェルスクリプト

投稿日:2018-11-04
最終更新:2018-11-04

目的

macで編集したファイルを、ラズパイに送信したいです。

が、LAMP環境下で"/var/www/"にファイルを設置するのには、root権限が無いとだめらしいです。

手順

  • macでファイルを編集する
  • rbpにscpコマンドで適当な場所にファイル送信
  • rbpにsshコマンドで接続する
  • mvコマンドで"var/www/"にファイルを移動

ファイルをまとめて送信するときは、zipにしてから送信するのがベター。

コマンドにするとこのような感じです。

# rbpにscpコマンドでファイル送信
scp {送信したいファイル} {アカウント名}@{サーバー名}:{配置するディレクトリ}

#パスワード聞かれる

# rbpにsshコマンドで接続する
ssh -l {アカウント名} {サーバー名}

#パスワード聞かれる

# mvコマンドで"var/www/"にファイルを移動
sudo mv {配置したファイル} /var/www/

# ssh接続終了
exit

アカウント名はデフォだと「pi」でした。

サーバー名は、ラズパイで「ifconfig」叩けば分かります。(192.168.xx.xxってやつ)

配置するディレクトリは、アクセス権ある場所ならどこでもいいです。

自動化

流れはいつも同じだからシェルスクリプト書いて自動化したい。

パスワード毎回打つのめんどくさい。

#!/bin/bash

PW="password"

# ファイルを送信
expect -c "
set timeout 5
spawn env LANG=C /usr/bin/scp {送信したいファイル} {アカウント名}@{サーバー名}:{配置するディレクトリ}
expect \"password:\"
send \"${PW}\n\"
expect \"$\"
exit 0
"

# ssh接続して送信されたファイルを移動
expect -c "
set timeout 5
spawn env LANG=C /usr/bin/ssh -l {アカウント名} {サーバー名} sudo mv {配置したいファイル} /var/www/
expect \"password:\"
send \"${PW}\n\"
expect \"$\"
exit 0
"

macなので.commandでファイル作成して実行すれば、ファイルが送られます。嬉しい。

これでいちいちパスワード打たずに実行するだけでファイル送信することができました。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@CORNER1103'の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!