ラズパイに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でファイル作成して実行すれば、ファイルが送られます。嬉しい。

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

記事が少しでもいいなと思ったらクラップを送ってみよう!
54
+1
@CORNER1103'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする