ちょっと前にsshでリモートdumpするのを書きましたが、うまく動きませんね。FATってdumpできないんですかね。よくわかりません。まだまだ知らないことばかりです。
ラズパイでdht22を使い、Ambientへデータを送る
必要なパッケージ等を入れる
sudo apt-get install python-dev git git python-pip sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo python setup.py install pip install git+https://github.com/AmbientDataInc/ambient-python-lib.git
参考
温度/湿度センサーDHT22をRaspberry Piで使用する方法
Ambient
スクリプトの作成
vi dht22.py
#!/usr/bin/python # coding: utf-8 import Adafruit_DHT as DHT import ambient ## センサーの種類 SENSOR_TYPE = DHT.DHT22 ## 接続したGPIOポート DHT_GPIO = 4 ## 測定開始 h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO) am = ambient.Ambient( xxxx, 'xxxx' ) r = am.send({ 'd1':'{0:0.1f}'.format(t), 'd2':'{0:0.1f}'.format(h) }) print r ## 結果表示 # print "Temp= {0:0.1f} deg C" . format(t) # print "Humidity= {0:0.1f} %" . format(h) print t print h
cronで5分に1回動くようにしておく。stdoutとstderrは始末しておく。
ssh公開鍵とパーティションのバックアップ
micro sdのバックアップは、OS止めて取る方が正解なんでしょうが、手間なので動かしながら取りたい。なのでsshでrootでパス無しで接続させる。
ssh接続先(バックアップを取る方)で
sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password ← こいつをコメントアウト sudo systemctl restart ssh
ssh接続元で
sudo su cd /root ssh-keygen -t rsa cat .ssh/id_rsa.pub ←下のauthorized_keysに貼る
ssh接続先で
sudo su cd /root/.ssh vi authorized_keys ←上でcatしたやつを貼る chmod 600 authorized_keys
接続元からバックアップを取る。うちの環境ならば、/と/bootだけ取ればok
ssh 192.168.x.x '/sbin/dump 0fa - /boot' | cat >sda1.dmp ssh 192.168.x.x '/sbin/dump 0fa - /' | cat >sda2.dmp
dumpをインストール
sdカードのバックアップを取ろうかと思ったらdumpがなかったので入れておく。
apt-get install dump
USB Wifiアダプタのパワーマネジメントを切る
sudo vi /etc/modprobe.d/8192cu.conf
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
sudo reboot
GrowthForecast
GrowthForecastセットアップ。必要ないものもたぶん入れてる…
sudo apt-get install -y pkgconfig glib2-devel gettext libxml2-devvel libxml2-dev pango-devel cairo-devel
sudo apt-get install -y build-essential cpanminus
sudo apt-get install -y libmodule-depends-perl libmodule-install-perl libserver-starter-perl libalien-sdl-perl libalien-sdl-dev-perl librrds-perl
cpanm -n inc
cpanm -n MyBuilder
cpanm -n Alien::RRDtool がインストールできない
workディレクトリにおりて、Makefile.PLとBuilder.PLを編集(’.’ in @INC問題とその対処法についてを参照)。
use FindBin; use lib $FindBin::Bin;
これを追加してmakeして、インストール。一般ユーザだとダメだったので、rootで入れちゃう。
cpanm –n GrowthForecast
mkdir growthforecast
growthforecast.pl –data-dir /home/pi/growthforecast
google home notifier
sudo apt-get install avahi-daemon libnss-mdns sudo apt autoremove npm install google-home-notifier --save
vi bin/say.js
#!/usr/local/bin/node const home = require('google-home-notifier'); const argv = process.argv; const text = argv[2] || ''; const lang = argv[3] || 'ja'; const ip = argv[4] || '192.168.x.x'; home.ip(ip, lang); home.device('Google-Home', lang); home.notify(text, (res) => console.log('said '+ text));
node.js、hubotの導入
node.jsの導入、hubotの雛形の生成、Raspberry Piの起動時に…の通り
sudo apt install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n lts
sudo npm install -g yo generator-hubot
mkdir homebot; cd homebot
yo hubot
? Owner (User <user@example.com>) [Enter]
? Bot name (homebot) [Enter]
? Description (A simple helpful robot for your Company) [Enter]
? Bot adapter (campfire) slack[Enter]
sudo apt install redis-server
npm install coffee-script@^1.12.6
rm hubot-scripts.json
vi hubot-scripts.json “hubot-heroku-keepalive”,を削除
npm install hubot-broadlink-rm
vi external-scripts.json “hubot-broadlink-rm”,を追加
vi bin/hubot
#!/bin/sh
set -e
npm install
export PATH=”node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH”
export HUBOT_SLACK_TOKEN=xxx…
exec node_modules/.bin/hubot –name “homebot” “$@”
vi bin/homebot.sh
#!/bin/sh
cd /home/pi/homebot
sudo -u pi bin/hubot –adapter slack
chmod +x bin/homebot.sh
vi /etc/systemd/system/homebot.service
[Unit]
Description = hubot for smart home
[Service]
ExecStart=/home/pi/homebot/bin/homebot.sh
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target
systemctl list-unit-files –type=service
sudo systemctl enable homebot
sudo reboot
systemctl status homebot
Raspberry pi zero wセットアップメモ
google homeでテレビや照明のコントロール用
stretch_liteイメージ(2017-11-29-raspbian-stretch-lite.zip)をダウンロード
イメージ書き込み(etcher使用)
bootに以下2つを作成
「ssh」(空ファイル)
「wpa_supplicant.conf」 秀丸なら「ファイル」「エンコード」で改行をLFのみにする
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid=”xxxxxxxx”
scan_ssid=1
psk=0c09…
key_mgmt=WPA-PSK
}
起動後、teratermで接続
sudo swapoff –all
sudo apt-get remove dphys-swapfile
sudo reboot
vi /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.x.x
static routers=192.168.x.x
static domain_name_servers=x.x.x.x
vi /etc/fstab
tmpfs /tmp tmpfs defaults,size=40m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
sudo vi /etc/rsyslog.conf
メールとかkern、lpr、userのログは取らない
sudo vi /etc/rc.local
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
mkdir -p /var/log/apache2
mkdir -p /var/log/redis
touch /var/log/redis/redis-server.log
chmod 777 /var/log/redis/redis-server.log
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
sudo apt-get install -y ntp
sudo vi /etc/ntp.conf
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
sudo raspi-config タイムゾーンの設定
vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6=1を追加
sudo sysctl -p
sudo apt update
sudo apt upgrade
sudo reboot
SuiteからSuiteX V2へ移行
SuiteX V2へ移行しました。
adminでFTPしてもメールデータが見られませんね。Suiteのころは全ユーザのメールディレクトリが見られたので、バックアップも簡単でした。SuiteのメールデータをSuiteXのメールディレクトリへ戻せそうにないです。