2019年2月24日 星期日

sshpass 指令實現無互動登入, 適合應用在自動化腳本作業

Ref. http://jamyy.us.to/blog/2013/08/5260.html
just keep backup.

安裝 sshpass
sudo apt-get install sshpass
sshpass 操作範例
密碼直接打在 -p 參數後面
sshpass -p 'mypassword' ssh myaccount@my.linux.host
sshpass -p 'mypassword' sftp myaccount@my.linux.host
sshpass -p 'mypassword' scp myaccount@my.linux.host:/path/to/file ./
sshpass -p 'mypassword' rsync -a -v myaccount@my.linux.host:/path ./
密碼存放在檔案裡面
echo "mypassword" > ~/.mypasswd
sshpass -f ~/.mypasswd ssh myaccount@my.linux.host
密碼放在環境變數
SSHPASS="mypassword" sshpass -e ssh myaccount@my.linux.host

export SSHPASS="mypassword"
sshpass -e ssh myaccount@my.linux.host
unset SSHPASS
使用 stdin 傳遞密碼
echo "mypassword" | sshpass -d 0 ssh myaccount@my.linux.host "commands"

vi test.sh
01#!/bin/bash
02
03if "$1" "AcTiOn" ]; then
04   read i
05   echo $i | sshpass -d 0 ssh myaccount@my.linux.host "commands"
06   exit
07fi
08
09if [ -e "$1" ]; then
10   cat $1 | $0 AcTiOn
11fi
sh ./test.sh ~/.mypasswd
讓首次 ssh 連線不出現提示訊息
測試 "首次連線": 把 my.linux.host 從 ~/.ssh/known_hosts 移除
ssh-keygen -f ~/.ssh/known_hosts -R my.linux.host
此時 ssh 會出現確認訊息
ssh myaccount@my.linux.host
The authenticity of host 'my.linux.host (192.168.1.1)' can't be established.
RSA key fingerprint is 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff.
Are you sure you want to continue connecting (yes/no)? (回答 no 或 Ctrl + C 脫離)
以下方法讓首次 ssh 連線不出現提示訊息, 自動將連線目標加入 ~/.ssh/known_hosts
sshpass_command="sshpass -p "loginpassword" ssh -o StrictHostKeyChecking=no"

避免密碼記錄在 history
方式一
先停止 history 記錄
set +o history
進行 sshpass -p 相關操作
最後再恢復 history 記錄
set -o history
方式二
直接進行 sshpass -p 相關操作
清除操作記錄
true > ~/.bash_history
history -c

2019年2月20日 星期三

Nvidia-smi and CUDA Installation by runfile




Nvidia-smi
----------------------------------------------------------------
sudo apt-get purge nvidia* # Remove all old nvidia drivers
sudo add-apt-repository ppa:graphics-drivers # Add the Graphics driver PPA
sudo apt-get update
sudo apt-get install nvidia-396

sudo reboot

CUDA
=====================================
Download the run files from the following locations:


Linux->x86_64->Ubuntu->16.04-> runfile(local)

change permissions of downloaded cuda run file

sudo chmod +x <cuda-run-file>

run runfile: sudo bash <run-file-name>

There will be a few prompts
Mark NO when asked to install Nvidia Driver
Everything else should be yes

2019年1月31日 星期四

Win 10 + Ubuntu 16.04 雙系統安裝在同顆硬碟上 (UEFI OS)

前置作業
1. in Win 10: 控制台\所有控制台項目\電源選項
    -> 選擇蓋上螢幕時的行為 -> 將“開啟快速啟動”關閉
2. in BIOS setup menu: disable "secure boot"

安裝Ubuntu
1. Partition 分割 (三個就好,無需/boot)
    - /
    - /home
    - swap
2. 啟動引導器位置選安裝的Drive代號 (example: /dev/sda),不要選到partition
==========
3.裝完後重開機若無GRUB開機選單出現而直接開進Win 10:
把EFI磁區掛到G槽 (代號隨意,找個沒在用的就好)
#mountvol g: /s  
進G槽
#g:
#bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

or (secure boot沒關的話)
#bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

4. 進Ubuntu LiveCD => try ubuntu
連上網路
#sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
#sudo apt-get install -y boot-repair && (sudo boot-repair &)
會跳出一視窗,點擊Recommended repair

5. 重開機,會出現GRUB開機選單
==========
設定開機順序 (Set boot sequence)
#update-grub
#/gedit etc/default/grub 
修改GRUB_DEFAULT=saved
#grep menuentry /boot/grub/grub.cfg

(index從0開始)
#grub-set-default X        <- (not work for UEFI OS)
# update-grub
==========
6. Disable UTC, 避免 Ubuntu 和 Windows 時間不同而錯亂
# timedatectl set-local-rtc 1 --adjust-system-clock