2016年7月12日 星期二

Ubuntu mount folder automatically

Create your username/password file for access server

# sudo -s
# nano /root/.smbcredentials

Add the following to it

username=deray.xu
password=userpassword


Edit /etc/fstab

#nano /etc/fstab

Add the following to it
//file.server.com/folder /home/deray/mount cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777,domain=deray.com,sec=ntlm 0 0


直接寫上帳號密碼的方式:
//file.server.com/folder /home/deray/mount smbfs defaults,username=deray.xu,password=userpassword,_netdev,file_mode=0777,dir_mode=0777 0 1


安裝cifs支援
# sudo apt-get install cifs-utils

利用 rsync + ssh + crontab 做主機自動同步備份

1. 安裝rsync

# sudo apt-get install rsync

檢查
# dpkg -l | grep rsync


2. 製作不需密碼就可以登入的ssh用戶

在client端製作公鑰和私鑰

# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/deray/.ssh/id_rsa):
Created directory '/home/deray/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/deray/.ssh/id_rsa.
Your public key has been saved in /home/deray/.ssh/id_rsa.pub.

最後鑰匙會產生在家目錄的.ssh目錄下,id_rsa.pub是公鑰,id_rsa就是私鑰,
把公鑰傳到server上,然後到server上,將公鑰加入authorized_keys,
authorised_keys放在家目錄的.ssh目錄下,如果還沒有這個目錄,手動把它建立起來

# mkdir .ssh

第一次還沒有authorized_keys,直接用cat把id_rsa.pub的內容加進去
# cat id_rsa.pub >> authorized_keys

以後要加其他的公鑰,也是用cat附加到該檔案後面就可以

回到client端,試試看是否不需要詢問密碼就能登入

# ssh xxx@xxx.xxx.xxx


3. rsync同步備份

在client端輸入以下指令
# rsync -av --delete -e ssh xxx@xxx.xxx.xxx:/var/www /home/backup

把server上的/var/www同步備份到client的/home/backup,
之後server端有任何異動,只會同步備份異動的部份。


4. 設定crontab讓備份自動執行

在client端把rsync指令寫到crontab裡

# crontab -e
3 5 * * * rsync -av --delete -e ssh xxx@xxx.xxx.xxx:/var/www /home/backup
這樣就是在每天凌晨03:05自動同步備份

Ubuntu sudo 不用輸入密碼

修改/etc/sudoers

# visudo

( # sudo vi /etc/sudoers )


%admin ALL=(ALL)
改成
%admin ALL=(ALL) ALL NOPASSWD: ALL

或把單一使用者改為不用輸入密碼:
在檔案最後加入
deray ALL=(ALL) NOPASSWD: ALL


sudoers內容意義


root ALL=(ALL) ALL

這行意思是,使用者root能從所有的終端機,
以任何所有使用者的身分,
來執行所有任何的指令。

所以第一部分是什麼使用者,
第二部分是使用者從哪個終端機能執行sudo,
第三部分是哪個使用者能執行,
最後部分是他能跑什麼指令。

Ubuntu中文資料夾改成英文

1. 打開console視窗,先使用以下指令確認目前語系:
# echo $LANG

2. 然後輸入export LANG=en_US,將語系變更為「英文」:
# export LANG=en_US

3. 接著輸入xdg-user-dirs-gtk-update,此時就會出現GUI的資料夾更名程式,
    然後選擇「更名」,就可以將預設資料夾改為英文:
# xdg-user-dirs-gtk-update

4. 在console視窗中輸入export LANG=[步驟1記下的語系設定],
    然後再做一次步驟3,此時要選擇「保留舊名稱」

* 前提是這些使用者系統預設的資料夾內必須是空的,
   如果有某個中文檔名資料夾內有其他檔案 ,
   雖然新的英文檔案夾仍會產生,
   但舊的中文檔案夾仍存在 檔案仍在舊的中文資料夾內。

---

指令修改方式:

# cd ~
# rm Desktop
# mv 桌面 Desktop
# mv 模板 Template
# mv 公共 Public
# mv 文件 Document
# mv 音樂 Music
# mv 圖片 Picture
# mv 影片 Video
# ln -s Desktop 桌面
# ln -s Template 模板
# ln -s Public 公共
# ln -s Document 文件
# ln -s Music 音樂
# ln -s Picture 圖片
# ln -s Video 影片

# nano ~/.config/user-dirs.dirs

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Desktop"
XDG_TEMPLATES_DIR="$HOME/Template"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Document"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Picture"
XDG_VIDEOS_DIR="$HOME/Video"

# sudo /etc/init.d/gdm restart

Linux install Git

Install Git

# sudo apt-get -y install git-core git-doc git-gui gitk gitg


其他開發可能需要的套件

# sudo apt-get install openjdk-7-jre

# sudo apt-get install build-essential gawk pkg-config gettext automake autoconf libtool bison flex zlib1g-dev libgmp3-dev libmpfr-dev libmpc-dev texinfo mc
sudo apt-get install libglib2.0-dev


設定 GCC PATH

# sudo nano /etc/profile
PATH="$PATH:/opt/buildroot-gcc???/bin/"
export PATH

Ubuntu Install tftp

安裝

# sudo apt-get install tftpd-hpa


無法正常安裝時可嘗試以下指令

# sudo apt-get install tftp-hpa tftpd-hpa openbsd-inetd
# sudo apt-get install xinetd


建立目錄tftpboot,用於傳輸文件

# sudo mkdir /tftpboot
# sudo chmod -R 777 /tftpboot
# sudo chown -R nobody /tftpboot


修改設定檔

# sudo nano /etc/default/tftpd-hpa

TFTP_USERNAME="root"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-s -c -l"

Note: -l for listening all time this avoided the timeout issue, -c to create files in tftfp folder.


tftp服務控制

# sudo service tftpd-hpa restart
# sudo service tftpd-hpa start
# sudo service tftpd-hpa stop


確認tftp服務是否開啟

# netstat -a | grep tftp

出現以下訊息,表示成功開啟
udp    0   0 *:tftp     *:*



Ubuntu Install SSH-Server

安裝 openssh-server

# sudo apt-get install openssh-server


檢查是否有執行 ssh-server

# ps aux | grep ssh


修改 ssh_config

sudo nano /etc/ssh/sshd_config

#PermitRootLogin Yes
PermitRootLogin no

# What ports, IPs and protocols we listen for
Port 22

( # sudo less /etc/services 查詢使用狀態 )


限制IP登入

sudo nano /etc/hosts.allow
最下方加入
sshd:xxx.xxx.xxx.xxx :allow


拒絕所有IP登入

sudo gedit /etc/hosts.deny
加入
sshd:all:deny


重新啟動

sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start

Uninstalling HEVC Video Extensions from Windows

Microsoft store packages are usually APPX format installations (HEVC Video Extensions is installed as APPX package) You will need to use Pow...