====== 關掉 console 下的蜂鳴器 ====== sudo modprobe -r pcspkr 或者用 sudo modconf,找到 drivers/input/misc/pcspkr.ko 並移除。 ====== 家目錄的原始檔 ====== /etc/skel ====== 手動建帳號 ====== - 編輯 /etc/passwd - 將 /etc/passwd 與 /etc/shadow 同步化 ( pwconv ) - 編輯 /etc/group - 將 /etc/group 與 /etc/gshadow 同步化 ( grpconv ) - 開設使用者的自家目錄(通常在 /home 中, 建一個和使用者帳號同名的目錄) - 將 /etc/skel 中的檔案全拷貝至使用者的自家目錄(cp /etc/skel/.* /home/使用者) - 調整使用者自家目錄檔案權限 - 設定密碼 ====== 大量建帳號 ====== for line in `cat account.txt` do account=`echo $line | cut -d : -f 1` passwd=`echo $line | cut -d : -f 2` useradd -m $account echo $account:$passwd | chpasswd done account.txt 格式: account:password ====== 手動移除帳號 ====== - 先以 find / -user account 找出所有的帳號檔案,並將他刪除 - 將 /etc/passwd 與 /etc/shadow 的相關資料刪除 - 將 /etc/group 及 /etc/gshadow 相關資料刪除 - 將 /home 底下關於該帳號的目錄刪除 - 到 /var/spool/mail 以及 /var/spool/cron 裡面將相關的使用者檔案刪除 ====== 使用者郵件轉寄 ====== .forward (644) \test@ab.com \edward ====== 網路校時 ====== 安裝 ntpdate 套件 # ntpdate -s stdtime.gov.tw ====== Learn 10 good UNIX usage habits ====== [[http://www-128.ibm.com/developerworks/aix/library/au-badunixhabits.html]] ====== crontab ====== ===== 系統全域 ===== /etc/crontab # m h dom mon dow user command 0 5 * * * root /usr/sbin/ntpdate -s stdtime.gov.tw > /dev/null 2>&1 ===== 各使用者 ===== $ crontab [參數] ^ 參數 ^功能^ | e |修改| | l |列出| | r |清除| ===== 修改設定 ===== * 每月每天七點執行 # min hour day mon week command 0 7 * * * /usr/bin/aptitude update > /dev/null 2>&1 * 將 stdout 導到 null,不要將結果寄信 > /dev/null 2>&1 ====== 交換 stdout 與 stderr ====== 只在 bash 可用。「n>&m」代表改變檔案與 FD 的關聯性,「將 stderr( FD 2)的關聯對象,改成 stdout(FD 1)的關聯對象」。 交換 stdout 與 stderr:使用保留的 FD 3 ~ FD 9。 3>&2 2>&1 1>&3 <&- 關掉 stdin >&- 關掉 stdout ====== 一次修改許多檔案名稱 ====== 把 *.cbe 改成 *.brl $ rename 's/\.cbe$/\.brl/g' * ====== 設定網路 ====== ifconfig eth0 inet 192.168.50.207 netmask 255.255.255.0 route add default gw 192.168.50.254 ====== NAT 導 Port ====== 內部電腦為 192.168.1.10,對外網卡為 eth0,想導的 port 為 6881。 iptables -t nat -A PREROUTING -P tcp -i eth0 --dport 6881 -j DNAT -- to 192.168.1.10:6881 ====== 找檔案 ====== $ locate [string] $ locate -r "[正規表示法]" find [location] [qualification] $ find / -name abc.pdf ====== 遠端傳送單一檔案(scp) ====== 將 file 傳送至遠端,以 username 權限登入,並放置 path 中 scp [file] [username]@[host]:[path] example: scp make.conf user@192.168.1.2:~ 主機後面要加一個「:」代表遠端的主機,「~」代表遠端的家目錄。 ====== 透過 ssh 掛載遠端 filesystem ====== 安裝套件: sshfs 使用: # sshfs [username]@[host]: [mount point] 如果出現「fusermount: failed to open /dev/fuse: No such device or address」 # mknod -m 666 /dev/fuse c 10 229 寫進 /etc/fstab 中: sshfs#user@host:/ /mnt/host fuse defaults 0 0 參考:http://fuse.sourceforge.net/wiki/index.php/SshfsFaq ====== 複製時比對資料新舊 ====== find -name "*.txt" | cpio -pdm /mnt/a/txt 把指定目錄內的檔案複製一份到 /mnt/a/txt 目錄內,後續若是多次 執行時會比對來源目錄的檔案時間是否比較新,有的話就進行複製更新。 ====== 監控網路介面 ====== ===== bwm ===== ===== bmon ===== ===== iftop ===== ===== iptraf ===== ====== 監控溫度及風扇轉速 ====== ===== mbmon ===== # sudo mbmon ====== 硬體 I/O 狀態 ====== 安裝 sysstat 套件 $ iostat /dev/sda1 -k 1 # 硬碟 ====== .exrc ====== vi 程式的預設設定,可在 vi 裡用「:set all」查詢 set number syntax on set paste set softtabstop=4 ====== cp ====== * -p 表示保留 permission,ownership,timestamp * -d 表示完整複製 symlink and hard link * -R 表示複製子目錄與特殊屬性的檔案 (socket, pipe line file) ====== tar ====== * -c : create * -x : extract * -t : list * -f : file * -j : bzip2 * -z : gzip * -p: 維持原本的檔案權限 tar -cvf filename.tar file1 [file2 ...] # 建立 tar -tf filename.tar # 印出包含的檔案 tar -rvf filename.tar file1 [file2 ...] # 將檔案放入已存在的 .tar 檔中 tar --delete -vf filename.tar file1 [file2 ...] # 將存在 .tar 裡面的 file1 刪除 tar -xvf filename.tar[.Z | .gz | .bz2] # 解開(可以不用指定解壓縮方式) ===== 以 bzip2 壓縮 ===== tar -cjvf filename.tar.bz2 file1 [file2 ...] ===== 以 gzip 壓縮 ===== tar -czvf filename.tar.gz file1 [file2 ...] ===== 差異備份 ===== 使用選項「-g 紀錄檔」可以依照紀錄檔的時間進行差異備份。下次備份時只會針對有修改的檔案進行備份。 tar -czf backup_1.tar.gz -g times file1 [file2 ...] 下一次: tar -czf backup_2.tar.gz -g times file1 [file2 ...] 回復備份:只要由舊到新依序將備份解開即可。 ====== ipcs ====== * -a All * -q 顯示訊息佇列 * -m 顯示共享記憶體 * -p 顯示 Process 訊息 ====== curl ====== 列出網頁的詳細 header $ curl -I [url] ====== ssh 登入訊息 ====== - 修改 /etc/motd 成想要顯示的內容 - 修改 /etc/init.d/bootmisc.sh # Update motd # uname -snrvm > /var/run/motd # [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd ====== SSH 不檢查 key ====== ~/.ssh/config StrictHostKeyChecking no ====== 備份指令 ====== ===== bash ===== http://blog.wu-boy.com/2006/12/10/52 #!/bin/bash date=`date +%Y-%m-%d` RETENTION_PERIOD="7" HEADER="Backup data" remove_oldfiles(){ echo "Removing directory $1 files older than $RETENTION_PERIOD days" | wall find $1 -type f -mtime +$2 -exec rm '{}' \; } BACKUPDIR="/home/appleboy /var/www/html" back_www_dir="/backup01/www_data" # # 開始備份 # cd $back_www_dir for TARGET in $BACKUPDIR do echo "System backup on $TARGET" | wall BASENAME=`basename $TARGET` tar -zcvf ${BASENAME}-${date}.tar.gz $TARGET 1>/dev/null sleep 2 done # # 刪除7天前的資料 # remove_oldfiles $back_www_dir $RETENTION_PERIOD ====== Run commands on multiple machines ====== Fanout and Fanterm: http://blog.wu-boy.com/2010/01/08/1950/