由於最近要登入一台新的 FTP server,之前某同事已申請過此 FTP server 的程式用帳號密碼,因為時效很趕的關係,所以跟同事拿了他程式帳號的 private key,準備在另一台主機採用 key 交換的方式利用相同 FTP 帳號(不需輸入密碼登入 FTP server),研究了一下,要選擇自訂的 private key 指令如下:
sftp -o IdentityFile=/your/private/key user@sftpserver
這樣就可以不破壞原來主機上的使用者原本的 private key 下(或根本沒有這個使用者帳號),利用 key 交換方式登入另一台主機
P.S. Perl 的 SFTP 模組建議採用 Net::SFTP::Foreign
2014年5月30日
2012年8月15日
2011年7月4日
[Linux] 去除空白行
以下每種方法都可行~
$ grep -v '^$' file
$ grep '.' file
$ sed '/^$/d' file
$ sed -n '/^$/!p' file
$ awk NF file
$ awk '/./' file
$ grep -v '^$' file
$ grep '.' file
$ sed '/^$/d' file
$ sed -n '/^$/!p' file
$ awk NF file
$ awk '/./' file
標籤:
blank line,
Linux
2011年4月25日
Linux 切換使用者出現 "/bin/bash : No such file or directory"
[root@VOIP bin]$ su - cvs
Password:
su: /bin/bash : No such file or directory
問題:Linux 切換使用者出現 "/bin/bash : No such file or directory"
檢查該使用者也有 home 目錄,/bin/bash 檔案也都在權限也沒問題,後來爬文找出原因是系統的 /etc/passwd 在該使用者那行多了看不出來的空白,解決方法如下
解法:
vim /etc/passwd 檔案,把 cvs 使用者那行最後面多餘的空白都殺掉,存檔,再切換就可以了
Password:
su: /bin/bash : No such file or directory
問題:Linux 切換使用者出現 "/bin/bash : No such file or directory"
檢查該使用者也有 home 目錄,/bin/bash 檔案也都在權限也沒問題,後來爬文找出原因是系統的 /etc/passwd 在該使用者那行多了看不出來的空白,解決方法如下
解法:
vim /etc/passwd 檔案,把 cvs 使用者那行最後面多餘的空白都殺掉,存檔,再切換就可以了
2011年4月15日
2011年3月16日
利用 Tar 備份且排除不想備份的目錄或檔案
想要進行目錄備份, 但是目的目錄中有一個子目錄很大且裡面是過時的 log 資料,於是找了些資料找到解法,情況如下
要備份的目錄是 wtl
不想要備份的是 wtl 裡面的 upgrade 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar zcvf wtl_backup.tgz --exclude=wtl/upgrade wtl/
這樣就不會將 upgrade 目錄備份進來了
要備份的目錄是 wtl
不想要備份的是 wtl 裡面的 upgrade 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar zcvf wtl_backup.tgz --exclude=wtl/upgrade wtl/
這樣就不會將 upgrade 目錄備份進來了
2010年10月29日
2010年6月9日
2010年5月24日
2009年6月12日
備份及刪除log時,出現 Argument list too long
在壓縮備份log的時候,使用 ls -al 200905*.log來看檔案,居然出現Argument list too long的錯誤,此時可用 find 來解決:
先進入該目錄
法1
# 產生 file list
find . -name '200905*.log' > fileList.txt
# 執行 tar 指令來壓縮並指定來源
tar zcvf 200905.tgz --files-from fileList.txt
法2
# 利用 pipe
find . -name '200905*.log' -print | tar zcvf 200905.tgz --files-from -
刪除時也出現相同訊息 Argument list too long 無法刪除,此時可利用 xargs 指令
find . -name '200905*' | xargs rm
這樣就可以刪掉了~
先進入該目錄
法1
# 產生 file list
find . -name '200905*.log' > fileList.txt
# 執行 tar 指令來壓縮並指定來源
tar zcvf 200905.tgz --files-from fileList.txt
法2
# 利用 pipe
find . -name '200905*.log' -print | tar zcvf 200905.tgz --files-from -
刪除時也出現相同訊息 Argument list too long 無法刪除,此時可利用 xargs 指令
find . -name '200905*' | xargs rm
這樣就可以刪掉了~
2009年4月24日
Linux裝機後hostname設定 - CentOS
裝機後主要要做的事情,目前想到的是設定防火牆還有hostname以及DNS
在設定hostname部分:
Linux 及 FreeBSD 修改主機名稱同樣使用 hostname 指令即可
例如:hostname taiwanwolf
這樣重新連線後,提示符號下就會變成
[root@taiwanwolf ~]
但這樣重開機後,還是會變回
[root@localhost ~]
為了系統下次啟動時也能自動使用新 hostname,需要作以下修改
vi /etc/sysconfig/network
把 hostname 部分改成新的名稱
P.S
Debian 為 /etc/hostname
FreeBSD 為 /etc/rc.conf
在設定DNS部分:
編輯 vim /etc/resolv.conf
內容如下
nameserver 139.175.252.16
nameserver 139.175.55.244
存檔即可
在設定hostname部分:
Linux 及 FreeBSD 修改主機名稱同樣使用 hostname 指令即可
例如:hostname taiwanwolf
這樣重新連線後,提示符號下就會變成
[root@taiwanwolf ~]
但這樣重開機後,還是會變回
[root@localhost ~]
為了系統下次啟動時也能自動使用新 hostname,需要作以下修改
vi /etc/sysconfig/network
把 hostname 部分改成新的名稱
P.S
Debian 為 /etc/hostname
FreeBSD 為 /etc/rc.conf
在設定DNS部分:
編輯 vim /etc/resolv.conf
內容如下
nameserver 139.175.252.16
nameserver 139.175.55.244
存檔即可
2009年4月7日
利用dd指令遠端備份為ISO檔及還原成硬碟 (Linux, Unix, Solaris等適用)
遠端備份A(主機)的硬碟為ISO檔並儲存到B(File Server)的/backup目錄下
備份成ISO檔並丟到File Server:
Step1:SSH進入到欲備份的A主機下指令 (Linux)
Step2:dd if=/dev/hda | gzip -9 -c | ssh taiwanwolf@fileserver_ip dd of=/backup/hda.img.gz
Solaris 大概像以下的語法
/usr/local/bin/dd if=/dev/dsk/c1t0d0s2 | /usr/local/bin/gzip -9 -c | /usr/local/bin/ssh taiwanwolf@fileserver_ip /bin/dd of=/backup/c1t0d0s2.img.gz
從遠端File Server的ISO檔還原到本機硬碟
Step1:從一台裝上硬碟的Server, SSH進入到B(File Server)
Step2:ssh taiwanwolf@fileserver_ip zcat /backup/hda.img.gz | dd of=/dev/hda
如果該還原主機沒有作業系統,可採用 knoppix 之類的LiveCD來開機, 再綁上IP即可進行還原或備份
備份成ISO檔並丟到File Server:
Step1:SSH進入到欲備份的A主機下指令 (Linux)
Step2:dd if=/dev/hda | gzip -9 -c | ssh taiwanwolf@fileserver_ip dd of=/backup/hda.img.gz
Solaris 大概像以下的語法
/usr/local/bin/dd if=/dev/dsk/c1t0d0s2 | /usr/local/bin/gzip -9 -c | /usr/local/bin/ssh taiwanwolf@fileserver_ip /bin/dd of=/backup/c1t0d0s2.img.gz
從遠端File Server的ISO檔還原到本機硬碟
Step1:從一台裝上硬碟的Server, SSH進入到B(File Server)
Step2:ssh taiwanwolf@fileserver_ip zcat /backup/hda.img.gz | dd of=/dev/hda
如果該還原主機沒有作業系統,可採用 knoppix 之類的LiveCD來開機, 再綁上IP即可進行還原或備份
標籤:
遠端備份ISO,
dd,
dd on the fly,
Linux,
Solaris 硬碟備份,
Unix
2009年2月26日
[Linux] 沒有固定IP的人,如何利用動態域名架站
本文適用於有浮動IP的使用者,例如一般的ADSL用戶應該都有很多組的浮動IP,利用動態 DNS 的對應,讓你可以像具有固定IP一樣的效果,卻不用花半毛錢~
作業系統:Linux 或 FreeBSD均適用
DDNS提供者:
首先請先上 dyndns 網站去申請一組免費的 Domain name
然後安裝 dyndns 的dns client在網頁伺服器上
yum -y install ddclient
安裝完畢後,編輯設定檔如下 vim /etc/ddclient/ddclient.conf
(假設申請的 domain name是 taiwanwolf.dyndns.com)
daemon=600
cache=/tmp/ddclient.cache
pid=/var/run/ddclient.pid
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=您申請 dyndns 的登入帳號
password=您申請 dyndns 的登入密碼
protocol=dyndns2
server=members.dyndns.org
mx=taiwanwolf.dyndns.com
wildcard=YES
taiwanwolf.dyndns.com
之後再去 vim /etc/rc.local,加上下面這行把它設成開機啟動
/usr/sbin/ddclient
這樣就每隔600秒就會把你伺服器的IP,跟你的Domain name作同步,之後使用者只要在瀏覽器上打 http://taiwanwolf.dyndns.com 就可以連到你的網站了!
作業系統:Linux 或 FreeBSD均適用
DDNS提供者:
首先請先上 dyndns 網站去申請一組免費的 Domain name
然後安裝 dyndns 的dns client在網頁伺服器上
yum -y install ddclient
安裝完畢後,編輯設定檔如下 vim /etc/ddclient/ddclient.conf
(假設申請的 domain name是 taiwanwolf.dyndns.com)
daemon=600
cache=/tmp/ddclient.cache
pid=/var/run/ddclient.pid
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=您申請 dyndns 的登入帳號
password=您申請 dyndns 的登入密碼
protocol=dyndns2
server=members.dyndns.org
mx=taiwanwolf.dyndns.com
wildcard=YES
taiwanwolf.dyndns.com
之後再去 vim /etc/rc.local,加上下面這行把它設成開機啟動
/usr/sbin/ddclient
這樣就每隔600秒就會把你伺服器的IP,跟你的Domain name作同步,之後使用者只要在瀏覽器上打 http://taiwanwolf.dyndns.com 就可以連到你的網站了!
2009年2月2日
查看 Linux 系統資訊常用指令
lspci -v => 檢查系統 PCI 介面的各項裝置
lsusb => 檢查系統USB介面的裝置
lsscsi => 檢查系統SCSI介面的裝置
cat /proc/cpuinfo => 顯示CPU的資訊
cat /proc/meminfo => 顯示記憶體的資訊
free => 顯示記憶體的相關資訊
dmidecode => 查看硬體的相關資訊
hdparm -i /dev/hda => 硬碟的各項資訊
dmesg => Linux Kernel 運作過程當中所顯示的各項訊息記錄
uname -a => 顯示Linux系統資訊
cat /proc/version => 查看 Linux 核心
cat /etc/issue => 查看 Linux 系統版本
smartctl -a /dev/sda => 查看硬碟詳細資訊及型號
lsusb => 檢查系統USB介面的裝置
lsscsi => 檢查系統SCSI介面的裝置
cat /proc/cpuinfo => 顯示CPU的資訊
cat /proc/meminfo => 顯示記憶體的資訊
free => 顯示記憶體的相關資訊
dmidecode => 查看硬體的相關資訊
hdparm -i /dev/hda => 硬碟的各項資訊
dmesg => Linux Kernel 運作過程當中所顯示的各項訊息記錄
uname -a => 顯示Linux系統資訊
cat /proc/version => 查看 Linux 核心
cat /etc/issue => 查看 Linux 系統版本
smartctl -a /dev/sda => 查看硬碟詳細資訊及型號
訂閱:
文章 (Atom)