import random, string, urllib.request, json password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20)) #Download ngrok ! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip ! unzip -qq -n ngrok-stable-linux-amd64.zip #Setup sshd ! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null #Set root password ! echo root:$password | chpasswd ! mkdir -p /var/run/sshd ! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config ! echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config ! echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config ! echo "LD_LIBRARY_PATH=/usr/lib64-nvidia" >> /root/.bashrc ! echo "export LD_LIBRARY_PATH" >> /root/.bashrc #Run sshd get_ipython().system_raw('/usr/sbin/sshd -D &') #Ask token print("Copy authtoken from https://dashboard.ngrok.com/auth") import getpass authtoken = getpass.getpass() #Create tunnel get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &') #Print root password print("Root password: {}".format(password)) #Get public address with urllib.request.urlopen('http://localhost:4040/api/tunnels') as response: data = json.loads(response.read().decode()) (host, port) = data['tunnels'][0]['public_url'][6:].split(':') print(f'SSH command: ssh -p{port} root@{host}')
ameshをDocker上でビルドする
東京の雨雲状況をターミナル上で確認できるameshという素晴らしいコマンドがある。
みんな大好き東京アメッシュ http://tokyo-ame.jwa.or.jp/ をCLIで表示
iterm2だとこんな感じ
だが、通常だとgo環境が入っていないとインストールできない。goではバイナリにビルドすれば動くのが強みなので自分でビルドしてみる。
ちなみにDockerイメージも公式でリリースはされているが、1コマンドに300MB近くも容量喰うのは微妙だし、何より起動までが遅い。
準備
まずはgolangが動かせる環境を用意する
成果物をMac側に持っていきたいのでカレントディレクトリをマウントする形になる。以下
docker run -it --rm -w /app -v $(pwd):/app golang:1-buster sh
Dockerコンテナ内でgit clone
git clone https://github.com/otiai10/amesh.git cd amesh
ビルド
いざビルド
# GOOS=darwin GOARCH=amd64 go build -o amesh main.go no required module provides package main.go: go.mod file not found in current directory or any parent directory; see 'go help modules'
必要なモジュールをインストールする必要があるらしい
以下のコマンドで依存パッケージのインストール
go get -v -t
再度
GOOS=darwin GOARCH=amd64 go build -o amesh main.go
今度はうまく行けた
あとはMac側で
mv amesh /usr/local/bin/
して、ameshコマンドがたたければ成功
Linuxでadbコマンドを使えるようにする
以下メモ
thr3a@thr3a-vc66:~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 007: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 005: ID 8087:0a2b Intel Corp. Bus 001 Device 003: ID 2e17:c032 Essential Products PH-1 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub SUBSYSTEM=="usb", ATTR{idVendor}=="2e17", MODE="0666", GROUP="plugdev" service udev restart thr3a@thr3a-vc66:~$ adb devices List of devices attached PM1LHMA830702648 device