顯示具有 Raspberrypi 標籤的文章。 顯示所有文章
顯示具有 Raspberrypi 標籤的文章。 顯示所有文章

2016年7月10日 星期日

Lab: 利用SCP指令來抓取其他Sensor的資料

i@f1:~$ cat scplog.sh
#!/bin/bash
for x in t01 sensor05 <宣兩個x, 可以用來抓五個sensor>
do
        echo $x: <呼叫x>
done

<結果>
pi@f1:~$ ./scplog.sh
t01:
sensor05:

pi@f1:~$ cat scplog.sh
#!/bin/bash
for x in sensor05 sensor04
do
        echo $x:
        scp -r pi@$x:~/log ~/log_$x
done


pi@f1:~$ . scplog.sh
sensor05:
2016-07-03_10-54-32_0000.log                    0%    0     0.0KB/s   --:--           2016-07-03_10-54-32_0000.log                   52%   80KB  80.0KB/s   00:00           2016-07-03_10-54-32_0000.log                  100%  151KB 151.1KB/s   00:01         
sensor04:
2016-07-03_10-54-19_0000.log                    0%    0     0.0KB/s   --:--           2016-07-03_10-54-19_0000.log                  100%  151KB 151.2KB/s   00:00   



pi@f1:~$ cat hgetxyz.sh
#!/bin/bash
echo head 30
head -30 $1 |cut -d',' -f 1,2,3,4

echo tail 50
tail -30 $1 |cut -d',' -f 1,2,3,4  <以","為依據,取3 4 欄>

<$1 is 參數filename, >

pi@f1:~$ ./hgetxyz.sh s5log
head 30
2016-07-03 14:17:18.096,0.00054785156250,0.00013671875000,-0.00119995117187
2016-07-03 14:17:18.196,-0.00180688476562,0.00102075195312,-0.00022705078125
2016-07-03 14:17:18.296,0.00166357421875,-0.00298144531250,-0.00257177734375
2016-07-03 14:17:18.396,0.00015454101563,0.00097290039062,0.00122583007813
2016-07-03 14:17:18.496,0.00027270507813,0.00037207031250,-0.00054589843750
2016-07-03 14:17:18.596,-0.00045556640625,0.00213696289062,-0.00403442382812


========================================================================
pi@f1:~$ free -mh <Check Memery free>
             total       used       free     shared    buffers     cached
Mem:          434M       107M       327M       4.4M        10M        66M
-/+ buffers/cache:        30M       403M
Swap:          99M         0B        99M
pi@f1:~$ free -mh | grep Mem:
Mem:          434M       107M       327M       4.4M        10M        66M


pi@f1:~$ free -mh | grep Mem: <只要看Memery的>
Mem:          434M       107M       327M       4.4M        10M        66M

pi@f1:~$ free -mh | grep Mem: | fmt -u <去空白>
Mem: 434M 113M 321M 4.4M 12M 66M

pi@f1:~$ free -mh | grep Mem: | fmt -u | cut -d' ' -f 3,4 <以空白為依據,取3 4 欄>
321M

<<Usage: cut OPTION... [FILE]...
Print selected parts of lines from each FILE to standard output.

Mandatory arguments to long options are mandatory for short options too.
  -b, --bytes=LIST        只顯示指定的位元組
  -c, --characters=LIST   只顯示指定的字元
  -d, --delimiter=DELIM   以 DELIM 字元代替 TAB 作為欄位的分隔符號
  -f, --fields=LIST       只顯示指定的欄位;同時也印出不含分隔符號的
                            每一行,除非配合 -s 選項一起使用>>

$ nano happy.sh
#!/bin/bash
echo $0
echo $1

pi@f1:~$ ./happy.sh test
./happy.sh
test
<pi@f1:~$ ./happy.sh=$0 test=$1 $2 $$4...etc>

========================================================================

pi@f1:~$ cat hget.sh
#!/bin/bash

[ "$2" == "x" ] && pos='2'
[ "$2" == "y" ] && pos='3'
[ "$2" == "z" ] && pos='4'

head -$3 $1 | cut -d',' -f $pos

hget.sh filename x, y or z 軸 看幾筆data

pi@f1:~$ ./hget.sh slog x 10
-0.00039184570312
-0.00317431640625
0.00247192382813
....



pi@f1:~$ head -100 slog | tail -10 <去頭尾,抓91-100筆data>
2016-07-03 10:54:48.798,-0.00109228515625,0.00207202148438,-0.00021655273438,0.02820610687023,-0.16757251908397,-0.00180916030534
2016-07-03 10:54:48.855,-0.00082885742188,-0.00034497070312,-0.00089819335938,-0.00667938931298,0.05465648854961,0.02148091603053
2016-07-03 10:54:48.913,0.00055859375000,-0.00090698242187,0.00018261718750,0.02339694656489,0.02916030534351,-0.01624427480916
2016-07-03 10:54:48.970,-0.00262988281250,-0.00032006835937,0.00132153320312,-0.01912977099237,0.00525954198473,-0.02438167938931
2016-07-03 10:54:49.027,-0.00198242187500,0.00033471679688,0.00016479492187,0.00329770992366,0.00109923664122,-0.13952671755725
2016-07-03 10:54:49.084,0.00193701171875,-0.00085595703125,0.00149121093750,-0.02974045801527,0.00515267175572,0.00488549618321
2016-07-03 10:54:49.142,-0.00072534179688,0.00158789062500,0.00089013671875,0.03358778625954,0.05039694656488,-0.00512213740458
2016-07-03 10:54:49.199,0.00189843750000,0.00152978515625,0.00553100585937,-0.02367938931298,0.16738931297709,0.03446564885496
2016-07-03 10:54:49.256,-0.00298730468750,0.00281347656250,-0.00112719726563,0.04851908396947,0.14975572519083,0.02287786259542
2016-07-03 10:54:49.313,-0.00017529296875,-0.00107983398437,0.00490942382812,-0.07195419847328,-0.01506106870230,0.03915267175572

========================================================================<20160710>

2016-07-10 11:17:51.429,-0.00079760742188,-0.00181811523437,0.00048510742189,0.0                                                                             6098473282445,-0.04567938931297,0.01094656488551
2016-07-10 11:17:51.527,0.00232592773437,-0.00061181640625,-0.00099560546873,0.0                                                                             2479389312979,0.02551145038169,0.01803053435116
^CTraceback (most recent call last): <Pause/Break Hold住>
  File "udpserver-31500.py", line 14, in <module>
KeyboardInterrupt
pi@f2:~$ python udpserver-31500.pyc <不能再run python>
2016-07-10 11:18:13.227,-0.00114746093750,0.00103979492188,0.00010009765627,0.02514503816796,-0.02649618320610,-0.00702290076334
2016-07-10 11:18:13.327,0.00427099609375,-0.00095947265625,-0.00217041015623,0.02548854961834,-0.01490076335877,-0.01181679389312
2016-07-10 11:18:13.427,0.00395996093750,0.00142041015625,-0.00017382812498,-0.02041984732823,0.07106106870230,0.02712213740459
2016-07-10 11:18:13.527,-0.00140039062500,0.00150683593750,-0.00091845703123,-0.02818320610685,0.00194656488550,0.03390076335879
2016-07-10 11:18:13.627,0.00058569335937,-0.00225341796875,-0.00426855468748,0.02360305343513,-0.04029007633587,-0.02203053435113
2016-07-10 11:18:13.727,0.00040820312500,0.00221728515625,0.00067846679689,0.03146564885498,0.03880916030535,0.07345038167940
2016-07-10 11:18:13.827,-0.00057128906250,-0.00056274414062,0.00236718750002,-0.05786259541983,0.01812213740459,0.01145801526719
2016-07-10 11:18:13.927,-0.00266284179688,-0.00056250000000,0.00105346679689,-0.01245801526716,-0.03738931297709,-0.04892366412212
2016-07-10 11:18:14.027,-0.00137426757813,-0.00089746093750,-0.00007177734373,-0.00997709923662,0.07964885496184,0.01810687022902
2016-07-10 11:18:14.127,-0.00000244140625,0.00146606445313,0.00356005859377,-0.01176335877861,-0.07436641221373,-0.00686259541983
2016-07-10 11:18:14.241,-0.00203076171875,-0.00160766601562,-0.00125390624998,-0.01373282442746,0.01701526717558,-0.02551908396945
2016-07-10 11:18:14.327,-0.00383081054688,0.00154394531250,0.00333105468752,0.00656488549620,-0.02378625954198,0.02474045801528
2016-07-10 11:18:14.427,0.00041870117187,-0.00128198242187,-0.00051879882811,-0.02067938931296,-0.02874045801526,0.00209160305345
2016-07-10 11:18:14.527,0.00194580078125,-0.00213330078125,-0.00163452148436,-0.01911450381677,0.04043511450382,-0.00919083969464
2016-07-10 11:18:14.627,-0.00011596679688,-0.00053417968750,-0.00098754882811,0.01910687022903,-0.04928244274808,0.03093129770994
2016-07-10 11:18:14.727,-0.00079785156250,-0.00130029296875,0.00090625000002,0.04080152671758,-0.00109160305343,-0.00676335877861
2016-07-10 11:18:14.827,0.00193798828125,0.00142358398438,-0.00251708984373,-0.03312977099235,0.04287022900764,-0.01983206106869
2016-07-10 11:18:14.927,0.00292260742187,0.00003540039063,-0.00014086914061,0.00106870229009,-0.02904580152671,-0.05447328244273
2016-07-10 11:18:15.027,-0.00287597656250,0.00041064453125,-0.00179418945311,-0.00735114503815,0.01086259541985,-0.00489312977098
2016-07-10 11:18:15.127,0.00320825195312,-0.00087524414062,0.00015112304689,-0.00666412213739,0.02646564885497,-0.01343511450380
2016-07-10 11:18:15.227,-0.00009814453125,-0.00151171875000,0.00049121093752,-0.00761068702288,-0.05738167938931,0.00277862595421
^Z
[1]+  Stopped                 python udpserver-31500.pyc
pi@f2:~$ python udpserver-31500.pyc
Traceback (most recent call last):
  File "udpserver-31500.py", line 11, in <module>
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
pi@f2:~$ fg <回到前景>

Lab: Bash Script 進階程式設計

Bash Script 進階程式設計 -1

<@的用途參數內容, #參數總數>
pi@f1:~$ more at.sh
echo $@

pi@f1:~$ ./at.sh 1 2 3 test
1 2 3 test

pi@f1:~$ ./at.sh 4 5 6 7 8 max
4 5 6 7 8 maxmu

pi@f1:~$ more at.sh
echo $@
echo $#

pi@f1:~$ ./at.sh 1 2 3 test
1 2 3 test
4
pi@f1:~$ ./at.sh 4 5 6 7 8 max
4 5 6 7 8 max
6

pi@f1:~$ more scplog.sh
#!/bin/bash
for x in sensor05 sensor04
do
        echo $x:
        scp -r pi@$x:~/log ~/log_$x
done


pi@f1:~$ cat case.sh
for x in $@
do
        case $x in
                1)echo "1"
                ;;
                2)echo "2"
                ;;
                3)echo "3"
                ;;
                4)echo "4"
                ;;
        esac
done

pi@f1:~$ ./case.sh 1
1
pi@f1:~$ ./case.sh 2
2
pi@f1:~$ ./case.sh 3
3
pi@f1:~$ ./case.sh 4
4


pi@f1:~$ ./case.sh 1 2 3 4 5 6 7 8
1
2
3
4
pi@f1:~$


pi@f1:~/led$ more lighton.sh
#!/bin/bash
python lightoff.py
for x in $@
do
  case $x in
        1) echo $x
           python n1.py
                ;;
        2) echo $x
           python n2.py
                ;;
        3) echo $x
           python n3.py
                ;;
        4) echo $x
           python n4.py
                ;;
        5) echo $x
           python n5.py
                ;;
        6) echo $x
           python n6.py
                ;;
  esac
done


pi@f1:~/led$ cat lightoff.py
#!/usr/bin/python

import RPi.GPIO as GPIO
import time

# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)

GPIO.setwarnings(False)

# set up GPIO output channel, we set GPIO4 (Pin 7) to OUTPUT<初始化全部>
GPIO.setup(29, GPIO.OUT)
GPIO.setup(31, GPIO.OUT)
GPIO.setup(32, GPIO.OUT)
GPIO.setup(33, GPIO.OUT)
GPIO.setup(35, GPIO.OUT)
GPIO.setup(37, GPIO.OUT)

GPIO.output(29,GPIO.LOW)<LOW關燈>
GPIO.output(31,GPIO.LOW)
GPIO.output(32,GPIO.LOW)
GPIO.output(33,GPIO.LOW)
GPIO.output(35,GPIO.LOW)
GPIO.output(37,GPIO.LOW)

# blink GPIO4 (Pin 7) 50 times


pi@f1:~/led$ more n1.py
#!/usr/bin/python

import RPi.GPIO as GPIO
import time

# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)

GPIO.setwarnings(False)

# set up GPIO output channel, we set GPIO4 (Pin 7) to OUTPUT
GPIO.setup(29, GPIO.OUT) <初始化一個>
#GPIO.setup(31, GPIO.OUT)
#GPIO.setup(32, GPIO.OUT)
#GPIO.setup(33, GPIO.OUT)
#GPIO.setup(35, GPIO.OUT)
#GPIO.setup(37, GPIO.OUT)


# blink GPIO4 (Pin 7) 50 times
GPIO.output(29,GPIO.HIGH)<亮燈>
pi@f1:~/led$

pi@f1:~/led$ cat splash.sh <閃五次...>
#!/bin/bash
python lightoff.py
python n1.py
python lightoff.py
python n1.py
python lightoff.py
python n1.py
python lightoff.py
python n1.py
python lightoff.py
python n1.py
python lightoff.py
python n2.py
python n3.py
python n4.py
python n5.py
python n6.py
pi@f1:~/led$

======================================================================
pi@f1:~$ cat rfile.sh
#!/bin/bash
exec < $1 #Import files
while read line
do
        echo $line # Print content line by line
done
<列印出檔案內容的script>

pi@f1:~$ ./rfile.sh mgetxyz.sh
#!/bin/bash
echo head56
tail -$(($4-$3+1)) $1 | head -$2 |cut -d',' -f 1,2,3,4

pi@f1:~$ a=$((3*3))
pi@f1:~$ echo $a
9
pi@f1:~$ a=$((0.3*0.3)) <原來bash script無法做小數點運算>
-bash: 0.3*0.3: syntax error: invalid arithmetic operator (error token is ".3*0.3")

pi@f1:~$ python -c "print(0.3*0.3)" <python可做小數點運算>
0.09

pi@f1:~$ b=$(python -c "print(0.3*0.3)")
pi@f1:~$ echo $b
0.09

======================================================================
pi@f1:~$ cat t1.sh
#!/bin/bash
if (( $1 > $2 )); then
        echo 'Yes, the first one is biger than secondary.'
        exit 0
fi
echo 'false'
exit 1

<leave 0 and 1 is important>

pi@f1:~$ ./t1.sh 1 2
false
pi@f1:~$ echo $?
1


pi@f1:~$ ./t1.sh 2 1
Yes, the first one is biger than secondary.
pi@f1:~$ echo $?
0

======================================================================
<如果直接從log檔判斷地震發生>

pi@f1:~$ cat ck-shake.sh
#!/bin/bash
filename=$3
flag=0
exec < $filename
while read line
do
 x=$(echo $line | cut -d',' -f 2)
 y=$(python -c "print($x>$1)")
 z=$(python -c "print($x<$2)")

 if [ "$y" == "True" ] && [ "$z" == "True" ]; then
  flag=$(( $flag + 1 ))
  echo $line | cut -d',' -f 1,2,3
  if (( $flag > 3 )); then
     echo "Yes!"
     exit 0
  fi
 fi
done
echo "No."
exit 1



pi@f1:~$ ./ck-shake.sh 0.5 0.6 s5log
No.
pi@f1:~$ echo $?
1

pi@f1:~$ ./ck-shake.sh 0.001 0.006 log07101
2016-07-03 15:42:11.096,0.00124829101563,-0.00001147460937
2016-07-03 15:42:11.695,0.00127758789063,0.00017724609375
2016-07-03 15:42:12.595,0.00115771484375,0.00029833984375
2016-07-03 15:42:13.296,0.00164184570313,-0.00118823242187
Yes!
==>>累積幾筆後,再去行亮燈...Alert Function Finish!


2016年6月29日 星期三

SCP 指令

<SCP 傳送檔案>
pi@f1:~/smile$ scp office.txt pi@f4:~ <傳送到f4 host pi的home directory>
pi@f4's password:
office.txt                                      0%    0     0.0KB/s   --:--
office.txt                                    100%   55     0.1KB/s   00:00

<Verify it is completed>
pi@f4:~$ ls
office.txt  smile  test.txt

pi@f1:~$ scp -r smile pi@f4:~ <SCP 傳送整個目錄>
pi@f4's password:
office.txt                                      0%    0     0.0KB/s   --:-- office.txt                                    100%   55     0.1KB/s   00:00
office2.txt                                     0%    0     0.0KB/s   --:-- office2.txt                                   100%   55     0.1KB/s   00:00

 <Verify it is completed>

<SCP 抓取檔案>
pi@f1:~$ scp pi@f4:~/f4test.txt ~
pi@f4's password:
f4test.txt                                      0%    0     0.0KB/s   --:-- f4test.txt                                    100%   22     0.0KB/s   00:00
pi@f1:~$ ls
0626  auto.sh  f4test.txt  hello  smile  test.txt
pi@f1:~$ cat f4test.txt
abcd1234567890

<SCP 抓取整個目錄>
pi@f1:~/f4$ scp -r pi@f4:~/smile ~/f4
pi@f4's password:
office.txt                                      0%    0     0.0KB/s   --:-- office.txt                                    100%   55     0.1KB/s   00:00
office                                          0%    0     0.0KB/s   --:-- office                                        100%   12     0.0KB/s   00:00
office2.txt                                     0%    0     0.0KB/s   --:-- office2.txt                                   100%   55     0.1KB/s   00:00

樹莓派產生 SSH 自動登入憑證

<產生 SSH 自動登入憑證>
pi@f1:~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
Generating public/private dsa key pair.
Created directory '/home/pi/.ssh'.
Your identification has been saved in /home/pi/.ssh/id_dsa.
Your public key has been saved in /home/pi/.ssh/id_dsa.pub.
The key fingerprint is:
f4:37:c8:9e:66:7b:af:23:59:9a:d1:a7:40:b2:13:54 pi@f1
The key's randomart image is:
+---[DSA 1024]----+
|         .E      |
|        .        |
|       ..        |
|       .oo..     |
|        S=+.o    |
|        o.ooo..  |
|         .=B o   |
|         o=.+    |
|          .o.+.  |
+-----------------+
pi@f1:~$

pi@f1:~/.ssh$ ll
總計 16
drwx------ 2 pi pi 4096  6月 26 06:32 .
drwxr-xr-x 3 pi pi 4096  6月 26 06:32 ..
-rw------- 1 pi pi  668  6月 26 06:32 id_dsa
-rw-r--r-- 1 pi pi  595  6月 26 06:32 id_dsa.pub

pi@f1:~$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

pi@f1:~$ ll .ssh
總計 20
drwx------ 2 pi pi 4096  6月 26 06:44 .
drwxr-xr-x 3 pi pi 4096  6月 26 06:39 ..
-rw-r--r-- 1 pi pi  595  6月 26 06:44 authorized_keys
-rw------- 1 pi pi  668  6月 26 06:32 id_dsa
-rw-r--r-- 1 pi pi  595  6月 26 06:32 id_dsa.pub


pi@f1:~$ cat ~/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBANN4E8LhI4A8ymZEkq8vFZoBlNyb1jI5Mx2j53BzfKnMMqkWXxlCkJYkzkIqhuekqIfaCT8c3CARFZ9yMNNzU4hZKOiuU1xR3aKlCfec+wGfEYUgiCmTIL4q5qAs+kfz1LAs1swtPrlAFPb1VqN/WchXhmASeNUXLOMV5tgnfQDnAAAAFQCgeP6cJqjP6mtTA4/CUBSJdXPCqwAAAIBFRWzWiWV81hZzLEShn3qimV3e/SassWkjWhJzHk4tlpR5trM+r+Dj3F4XSPKN7VYOswQExdHYZVccyfG+AY8Yfr9mBTeL6ZxXbjykZVfaL+SJvg0I0ZXx/y6DqTpZ/EkJv8uLd9yQlN9RQw3U9Q3SYLFs4LNUVDN23f74WUQ4kgAAAIA8dED8VkbwCoc8C2xX7mSHr0e32jdqXaNms7z8GrxGZQdVUpApeW1SQqOPSLcRTcwPuvHZUvJs63cidvpketNvMBu8UXo/TCIFUs5EpPmkMZKFacSKVz7XfD4jmpVNfGpwZ//87gUwS9TYijGKNXOEAHFFGi+jrDAco7Hjv7w9Mw== pi@f1

pi@f1:~$ ssh f4 <try ssh 登入其他機器>
The authenticity of host 'f4 (172.20.110.153)' can't be established.
ECDSA key fingerprint is 30:98:7c:8a:39:81:34:83:7e:39:d4:c0:d8:44:7a:b3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'f4,172.20.110.153' (ECDSA) to the list of known hosts.
pi@f4's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jun 26 03:54:09 2016 from f4
pi@f4:~$ exit <離開>

<登入後會產生known_hosts>
-rw-r--r-- 1 pi pi  666  6月 26 06:47 known_hosts

pi@f1:~$ cat .ssh/known_hosts
|1|J2Ks8jCrK/nLOFpA27MyXeoj/ho=|As8PbHWM6YKa1fyu4qr+kV2EYPw= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLYJk9xZfu4nHqTLJy/F6pQmDNKKlicBBnsxKxqCCdH7afRnoRXBOpACtnotzfus2psEvUA2F5nbLfJ9DyHdt0M=
|1|Duy20DuhPYqmit8qz2M/hfV6Dhk=|CFhZWRA2Y/UJ1wqmqgO7M6x5xNQ= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA5/f97V1+fk5xveLVn1x916k8H1GibsLHrW0bfTV2tZlecyYUo1w6PMdg+E1rIzQk7n/A6wi5eFej3y9I6ScMI=
|1|WaSnEvzy76uymZJyK+mBTN2reaI=|ycGjSFE7pAQby2CyFiITBBGwFOM= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA5/f97V1+fk5xveLVn1x916k8H1GibsLHrW0bfTV2tZlecyYUo1w6PMdg+E1rIzQk7n/A6wi5eFej3y9I6ScMI=

利用SCP指領抓取憑證
<<ssh login without password work.>> 交憑証ssh login不用password

<先backup>
cp authorized_keys authorized_keys_bak

<從其他host copy來authorized_keys file>
scp pi@f2:~/.ssh/authorized_keys ~


pi@f1:~$ cat authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBALhK3oOhL452rLWR1qGzAP99hNpne+/ZzzKNNPiiqxI2Ruxy3N4O1ausvqQF89M9AGt8MHmCyvMd+/HXzzUIuNEh1+cMLmXyNfdAPGHd0GiLoC/thXR8WQHgutY37w1LovMgDhoBR518j2pKTdwyMGgkeXUlwluVkJBdLImoDhOdAAAAFQCTOyOkWJWtXcuyd/DhXlh65r8PWQAAAIEAiGr5CWPbz5OK0wUjgaftZ/H4FctGF1c+aA9oEnvdClkBxRI0HstRfylrZOdyLt6Iz/J4A7uS+wGDNyr4QFHLrap+pmm/bVHNy3y4PGCgGWPJYAHeEhtkSp3wrf5w0jjWrupj2vfe8JZR3UqsrrSTieRrdWcpVTDBQtCd0fqnmFkAAACBAKFF6v/3SdnExgVpHlvfrCGkCKvpgdonrJHELKF8xkzfOfeY9PR5wk+5ErqWWTO/l0dGL/q8h1Y1G/63NBOw/Enhfh+YuqTHtZWqWC9weHR1mjERvoCj3HcHwrV2S84838+Et54mfImLKvcB0FJ0HnvsY4VvwjoJHXjUPTMmK7pj pi@f2 <這是f2的authorized_keys>

<cat and import到f2的 authorized_keys file>
pi@f1:~$ cat ~/authorized_keys >> ~/.ssh/authorized_keys


<check f2 f4的都進來了>
pi@f1:~/.ssh$ cat authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBANN4E8LhI4A8ymZEkq8vFZoBlNyb1jI5Mx2j53BzfKnMMqkWXxlCkJYkzkIqhuekqIfaCT8c3CARFZ9yMNNzU4hZKOiuU1xR3aKlCfec+wGfEYUgiCmTIL4q5qAs+kfz1LAs1swtPrlAFPb1VqN/WchXhmASeNUXLOMV5tgnfQDnAAAAFQCgeP6cJqjP6mtTA4/CUBSJdXPCqwAAAIBFRWzWiWV81hZzLEShn3qimV3e/SassWkjWhJzHk4tlpR5trM+r+Dj3F4XSPKN7VYOswQExdHYZVccyfG+AY8Yfr9mBTeL6ZxXbjykZVfaL+SJvg0I0ZXx/y6DqTpZ/EkJv8uLd9yQlN9RQw3U9Q3SYLFs4LNUVDN23f74WUQ4kgAAAIA8dED8VkbwCoc8C2xX7mSHr0e32jdqXaNms7z8GrxGZQdVUpApeW1SQqOPSLcRTcwPuvHZUvJs63cidvpketNvMBu8UXo/TCIFUs5EpPmkMZKFacSKVz7XfD4jmpVNfGpwZ//87gUwS9TYijGKNXOEAHFFGi+jrDAco7Hjv7w9Mw== pi@f1
ssh-dss AAAAB3NzaC1kc3MAAACBAOrR8YAsS+7oNa9dzKKXnZ4jLJ8BRqMFPyUFoQ84G4TiT0nwFlU0+lE1JEVDV5NZP1j0IkwEg8SI9BVzQjX5xJb6+++2pR1uA/w60Z/dflxEkiJyKHLQwPsjOoNHZiEU7/FggMXioTZgrcqdvmOFp8ZYK4qq+aKU+G/5QMuBr5I7AAAAFQC3YT1QJb/BGoRhwo9gaN2c9jpFCQAAAIEA3S740E+OCCB0E3zgrbRuZ+5GfqOshKTZDw3LiJJzP/UQoN0JmwCtpiM1GMkvOY/VM856H1XIAtgolfdqy55o1JdJouRp8zBbIqJXq1VGn0NPZpQw47FFWLJWscOW6UnJywv39cMeHJ2oVccga0Q0fXE/ThK/uOF6An3egwrzA10AAACAcZQwL9svB5Wvgb8QYHaGGiAmkbHgUcs1kb5M9R5+Q1wrTLa7LuSJsr2HgNNkHGiIkaJUZMbZU5aJnb3uBSudls+DRn+khUrVkxDVPBvl3OwKGXlwUgQrFjctx5/MRN/khITwKNd+jEXub+if+ZrIAR4/RfY5Qe3qWOMAreDenDQ= pi@f4
ssh-dss AAAAB3NzaC1kc3MAAACBALhK3oOhL452rLWR1qGzAP99hNpne+/ZzzKNNPiiqxI2Ruxy3N4O1ausvqQF89M9AGt8MHmCyvMd+/HXzzUIuNEh1+cMLmXyNfdAPGHd0GiLoC/thXR8WQHgutY37w1LovMgDhoBR518j2pKTdwyMGgkeXUlwluVkJBdLImoDhOdAAAAFQCTOyOkWJWtXcuyd/DhXlh65r8PWQAAAIEAiGr5CWPbz5OK0wUjgaftZ/H4FctGF1c+aA9oEnvdClkBxRI0HstRfylrZOdyLt6Iz/J4A7uS+wGDNyr4QFHLrap+pmm/bVHNy3y4PGCgGWPJYAHeEhtkSp3wrf5w0jjWrupj2vfe8JZR3UqsrrSTieRrdWcpVTDBQtCd0fqnmFkAAACBAKFF6v/3SdnExgVpHlvfrCGkCKvpgdonrJHELKF8xkzfOfeY9PR5wk+5ErqWWTO/l0dGL/q8h1Y1G/63NBOw/Enhfh+YuqTHtZWqWC9weHR1mjERvoCj3HcHwrV2S84838+Et54mfImLKvcB0FJ0HnvsY4VvwjoJHXjUPTMmK7pj pi@f2

<把新的組合authorized_keys scp到其他host>
pi@f1:~/.ssh$ scp /home/pi/.ssh/authorized_keys pi@f2:~/.ssh
pi@f1:~/.ssh$ scp /home/pi/.ssh/authorized_keys pi@f4:~/.ssh
authorized_keys                                 0%    0     0.0KB/s   --:--
authorized_keys                               100% 1785     1.7KB/s   00:00

<認識ssh不用password>
pi@f1:~/.ssh$ ssh f2
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jun 26 09:35:54 2016 from f1



更新樹莓派

下載最新的套件

rroot@f1:/etc/network# apt-get update
下載:1 http://archive.raspberrypi.org jessie InRelease [13.2 kB]
下載:2 http://mirrordirector.raspbian.org jessie InRelease [14.9 kB]
下載:3 http://archive.raspberrypi.org jessie/main armhf Packages [144 kB]
下載:4 http://mirrordirector.raspbian.org jessie/main armhf Packages [8,980                      kB]
下載:5 http://archive.raspberrypi.org jessie/ui armhf Packages [8,966 B]
6% [3 Packages gzip 0 B] [4 Packages 350 kB/8,980 kB 4%] [5 Packages 0 B/8,9                                                                                                                                                                                                                       下載:6 http://mirrordirector.raspbian.org jessie/contrib armhf Packages [37.                     5 kB]
略過 http://mirrordirector.raspbian.org jessie/contrib Translation-zh
略過 http://mirrordirector.raspbian.org jessie/contrib Translation-en
略過 http://mirrordirector.raspbian.org jessie/main Translation-zh_TW
略過 http://mirrordirector.raspbian.org jessie/main Translation-zh
略過 http://mirrordirector.raspbian.org jessie/main Translation-en
略過 http://mirrordirector.raspbian.org jessie/non-free Translation-zh_TW
略過 http://mirrordirector.raspbian.org jessie/non-free Translation-zh
略過 http://mirrordirector.raspbian.org jessie/non-free Translation-en
略過 http://mirrordirector.raspbian.org jessie/rpi Translation-zh_TW
略過 http://mirrordirector.raspbian.org jessie/rpi Translation-zh
略過 http://mirrordirector.raspbian.org jessie/rpi Translation-en
取得 9,271 kB 用了 34s (268 kB/s)
正在讀取套件清單... 完成
38% [4 Packages 3,327 kB/8,980 kB 37%] [等待標頭]


root@f1:/etc/network# apt-get upgrade
正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
籌備升級中... 完成
下列套件將會維持其原有版本:
  libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0
  raspberrypi-bootloader
下列套件將會被升級:
  apt apt-utils bind9-host ca-certificates cpio curl dmsetup dpkg dpkg-dev
  file firmware-atheros firmware-brcm80211 firmware-libertas firmware-ralink
  firmware-realtek gnupg gpgv initramfs-tools isc-dhcp-client isc-dhcp-common
  krb5-locales libapt-inst1.5 libapt-pkg4.12 libbind9-90 libc-bin libc-dev-bin
  libc6 libc6-dbg libc6-dev libcurl3 libdevmapper1.02.1 libdns-export100
  libdns100 libdpkg-perl libdrm2 libexpat1 libgcrypt20 libgssapi-krb5-2
  libhogweed2 libidn11 libirs-export91 libisc-export95 libisc95 libisccc90
  libisccfg-export90 libisccfg90 libk5crypto3 libkrb5-3 libkrb5support0
  liblwres90 libmagic1 libnettle4 libpam-modules libpam-modules-bin
  libpam-runtime libpam0g libpcre3 libpng12-0 libpng12-dev libssh2-1
  libssl1.0.0 libsystemd0 libtalloc2 libtasn1-6 libudev1 libwbclient0
  libxapian22 libxml2 locales login multiarch-support openssh-client
  openssh-server openssh-sftp-server openssl passwd perl perl-base
  perl-modules python-rpi.gpio raspi-config rsyslog samba-common ssh sudo
  systemd systemd-sysv tzdata udev
升級 89 個,新安裝 0 個,移除 0 個,有 5 個未被升級。
需要下載 54.0 MB 的套件檔。
此操作完成之後,會多佔用 919 kB 的磁碟空間。
Do you want to continue? [Y/n]

(讀取資料庫 ... 目前共安裝了 30217 個檔案和目錄。)
Preparing to unpack .../tzdata_2016d-0+deb8u1_all.deb ...
Unpacking tzdata (2016d-0+deb8u1) over (2015f-0+deb8u1) ...
...
安裝新版的設定檔 /etc/init.d/raspi-config ...
Processing triggers for initramfs-tools (0.120+deb8u2) ...
Processing triggers for libc-bin (2.19-18+deb8u4) ...
Processing triggers for ca-certificates (20141019+deb8u1) ...
Updating certificates in /etc/ssl/certs... 19 added, 18 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
Processing triggers for systemd (215-17+deb8u4) ..

完成check
root@f1:/etc# apt-get install nano wget tree python
正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
nano 已經是最新版本了。
python 已經是最新版本了。
wget 已經是最新版本了。
下列【新】套件將會被安裝:
  tree
升級 0 個,新安裝 1 個,移除 0 個,有 5 個未被升級。
需要下載 44.9 kB 的套件檔。
此操作完成之後,會多佔用 96.3 kB 的磁碟空間。
Do you want to continue? [Y/n] Y
下載:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main tree armhf 1.7.0-3 [44.9 kB]
取得 44.9 kB 用了 1s (38.2 kB/s)
選取了原先未選的套件 tree。
(讀取資料庫 ... 目前共安裝了 30239 個檔案和目錄。)
Preparing to unpack .../tree_1.7.0-3_armhf.deb ...
Unpacking tree (1.7.0-3) ...
Processing triggers for man-db (2.7.0.2-5) ...
設定 tree (1.7.0-3) ...

基本樹莓派設定



pi@raspberrypi:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.3G  931M  262M  79% /
devtmpfs        214M     0  214M   0% /dev
tmpfs           218M     0  218M   0% /dev/shm
tmpfs           218M  4.4M  213M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           218M     0  218M   0% /sys/fs/cgroup
/dev/mmcblk0p1   60M   20M   41M  34% /boot

組態設定:
pi@raspberrypi:~$ sudo raspi-config

1 Expnad Filesystem ps. have to reboot system to enable
5->I1 Select en_US.UTF-8, zh_TW BIG5 and UTF-8
9->A3 Config GPU setting
8 Overclock Config CPU workload
Finish to reboot system


┌─────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├───────│──┐                                                                       │
│    1 Expand Filesystem              Ensures that all of the SD card s    │
│    2 Change User Password           Change password for the default u    │
│    3 Boot Options                   Choose whether to boot into a des    │
│    4 Wait for Network at Boot       Choose whether to wait for networ    │
│    5 Internationalisation Options   Set up language and regional sett    │
│    6 Enable Camera                  Enable this Pi to work with the R    │
│    7 Add to Rastrack                Add this Pi to the online Raspber    │
│    8 Overclock                      Configure overclocking for your P    │
│    9 Advanced Options               Configure advanced settings          │
│    0 About raspi-config             Information about this configurat    │
│                                                                          │
│                                                                          │
│                     <Select>                     <Finish>                │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────────┘


┌──────────────────────────────────────────────────────────┐
          │ Chose overclock preset                                   │
          │                                                          │
          │ None   700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │
          │ Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │
          │ Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt │
          │ High   950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt │
          │ Turbo  1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt│
          │ Pi2    1000MHz ARM, 500MHz core, 500MHz SDRAM, 2 overvolt│
          │ Root partition has been resized.                         │
          │ The filesystem will be enlarged upon the next reboot



Package configuration
 ┌──────────────────────────┤ Configuring locales ├──────────────────────────│ Many packages in Debian use locales to display text in the correct      │
 │ language for the user. You can choose a default locale for the system   │
 │ from the generated locales.                                             │
 │                                                                         │
 │ This will select the default language for the entire system. If this    │
 │ system is a multi-user system where not all users are able to speak the   │ default language, they will experience difficulties.                    │
 │                                                                         │
 │ Default locale for the system environment:                              │
 │                                                                         │
 │                                None                                     │
 │                                C.UTF-8                                  │
 │                                en_GB.UTF-8                              │
 │                                en_US.UTF-8                              │
 │                                zh_TW                                    │
 │                                zh_TW.UTF-8                              │
 │                                                                         │
 │                                                                         │
 │                    <Ok>                        <Cancel>     


How much memory should the GPU have?  e.g. 16/32/64/128/256
Default = 0 用不到

┌──────────────────────────────────────────────────────────┐
          │ Chose overclock preset                                   │
          │                                                          │
          │ None   700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │
          │ Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │
          │ Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt │
          │ High   950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt │
          │ Turbo  1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt│
          │ Pi2    1000MHz ARM, 500MHz core, 500MHz SDRAM, 2 overvolt│

CPU Overclock as High


pi@raspberrypi:~$ df -h
檔案系統        容量  已用  可用 已用% 掛載點
/dev/root       3.6G  933M  2.5G   27% /
devtmpfs        214M     0  214M    0% /dev
tmpfs           218M     0  218M    0% /dev/shm
tmpfs           218M  4.4M  213M    2% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           218M     0  218M    0% /sys/fs/cgroup
/dev/mmcblk0p1   60M   20M   41M   34% /boot
pi@raspberrypi:~$


Config Networking Setting

/etc/hostname
root@raspberrypi:/etc# more hostname
f1

/etc/hosts
root@raspberrypi:/etc# more hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       f1
172.20.110.150  f1
172.20.110.151  f2
172.20.110.152  f3
172.20.110.153  f4


/etc/network/interfaces
auto lo
iface lo inet loopback

#iface eth0 inet manual

auto eth0
iface eth0 inet static
address 172.20.110.150
netmask 255.255.0.0
gateway 172.20.110.254
dns-nameservers 168.95.1.1
#
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


/etc/resolv.conf
# Generated by resolvconf
nameserver 172.20.110.254
nameserver 168.95.1.1


加入無線AP基地台設定 for 1st machine only
$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

改ssid
psk

network={
        ssid="LOGTEAM"
        psk="log28353953"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN


Enable ip forward 功能
$ sudo nano /etc/rc.local
加2行
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

2016年6月19日 星期日

第一次樹莓派




Start
Launch Win32DiskImager
Burn Image to SD card - 2015-11-21-raspbian-jessie-lite.img
Install driver for UART - CP210xVCPInstaller_x64
Check Drivers Manager -Silicon Labs CP210x USB to UART Bridge (COM3)
Connect to little blade by Putty
Serial, COM3, Speed:115200
Opne and Login by pi/raspberry

Raspbian GNU/Linux 8 raspberrypi ttyAMA0

raspberrypi login: pi
Password:raspberry <盲打>

Login incorrect
raspberrypi login: pi
Password:
Last login: Sat Nov 21 22:14:17 UTC 2015 on ttyAMA0
Linux raspberrypi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspberrypi:~$


pi@raspberrypi:~$ sudo su root <切換 Root>
root@raspberrypi:/home/pi#


<其他指令和Linux差不多>

Docker Command

#1 pull images $docker pull chusiang/takaojs1607 #2 list images $docker images #3.1 run docker $docker run -it ### bash #3.2 run do...