shell日常運維shell命令集合
date:
-d
顯示字符串描述的時間
-f
顯示DATEFILE文件中的每行時間
-r
顯示文件的最後修改時間
-R
以RFC-2822兼容日期格式顯示時間
-rfc-2822
以RFC-2822兼容日期格式顯示時間
-s
設置時間為string
-u
顯示或設定為Coordinated Universal Time時間格式
運用-d參數
當前時間
# date -d now
Thu Nov 14 22:52:45 PST 2013
下個月的時間
# date -d 'next monday'
Mon Nov 18 00:00:00 PST 2013
昨天的時間並格式化顯示
# date -d yesterday +%Y%m%d
20131113
顯示文件最後修改的時間
# date -r install.log
Fri Sep 6 11:31:15 PDT 2013
顯示當前時間並格式化為 年-月-日 時:分:秒
date "+%Y-%m-%d %H:%M:%S"
2、grep
過濾空行和註釋行
grep -v # /etc/swift/object-server.conf |grep -v "^$"
egrep -v "#|^$" filename
網站PV統計
網站PV,即Page view,網站頁面點擊量
統計當天/home/index頁面點擊量
grep `date +%d/%b/%Y` access.log | grep "/home/index.html" -c
3、vi
vi下把文件內容追加到其他文件
:1,129 w! >>nginx.conf.bak
4、ps
內存占用過高的進程排查
ps aux | head -1;ps aux|grep -v PID|sort -rn -k +4|head
5、find
按目錄深度查找文件
find . -name "*.log*" -maxdepth 2 -mtime +15 -exec ls -l {} \;
declare:
-maxdepth 目錄深度
-atime -n[+n]: 找出文件訪問時間在n日之內[之外]的文件。
-ctime -n[+n]: 找出文件更改時間在n日之內[之外]的文件。
-mtime -n[+n]: 找出修改數據時間在n日之內[之外]的文件。
-amin -n[+n]: 找出文件訪問時間在n分鐘之內[之外]的文件。
-cmin -n[+n]: 找出文件更改時間在n分鐘之內[之外]的文件。
-mmin -n[+n]: 找出修改數據時間在n分鐘之內[之外]的文件。
排除目錄查找文件
find . -path "./20161218" -prune -o -name "*.log*" -print
declare:
-path pathname -prune: 避開指定子目錄pathname查找
-o 或
-a 且
-not 相反
6、進程
讓進程轉入後臺:
Ctrl + z
將進程轉到前臺:
fg
7、產生隨機的十六進制數,其中n是字符數:
openssl rand -hex n
8、獲取文本的md5 hash:
echo -n "text" | md5sum
9、壓縮與解壓縮
zip:
壓縮當前目錄下的內容為xxx.zip
zip -r xxx.zip ./*
刪除壓縮文件中的xxx.txt文件
zip -d xxx.zip xxx.txt
向壓縮文件中添加xxx.txt文件
zip -m xxx.zip ./xxx.txt
同時壓縮多個文件以及目錄
zip -r xxx.zip file1 file2 file3 /home/xxx/xxxx
unzip:
解壓縮到指定目錄
unzip -d /home/xxxx xxx.zip
解壓縮所有的txt文件到指定目錄
unzip xxx.zip *.txt -d /home/xxxx
找出文件壓縮後刪除源文件
find -mtime +3 -name "file*"| xargs zip -rm log.zip
查看壓縮包內的文件
unzip-v
10、sed
sed -s 's/^M//g' file 刪除文件中windows格式下的空格
sed '2,5d' file 顯示文件file,除去2-5行
sed '/10[1-4]/d' file 顯示除去包含101-104的行
sed '/^ *$/d file 刪除文件中的空行
sed -n '/10[1-4]/p' file 只顯示文件file中包含101-104的行
sed 's/moding/moden/g' file 將moding替換為moden
sed -n 's/^west/north/p' file 將west開頭的行替換為north並顯示出來
sed 's/...$//' file 刪除每一行的最後三個字符
sed 's/^...//' file 刪除每一行的頭三個字符
sed 's#moding#moden#g' file將moding替換為moden,s後面的#代表搜索串和替換串之間的分界符
sed'/101/,/105/s/$/ 20050119/' file將從101的匹配行到105的匹配行的行末增加"20050119"內容
sed -e '/^#/!d' file 顯示文件以#開頭的行
sed -e 's/:/ /g' passwd 替換文件所有冒號為空格
-e不改變源文件,輸出到標準輸出
-i改變源文件
linux下刪除windows文件的字符^M(ctrl-v)
:%s/^M$//g # 去掉行尾的^M
:%s/^M//g # 去掉所有的^M
:%s/^M/\r/g # 將^M替換成回車
# sed -e ‘s/^M/\n/g’filename
vi下去掉冒號
sed 's/://'g`
把文件中enabled的參數由1改為0
# sed -i '/enabled/s/1/0/' Iso.repo
11、刪除帶有.log後綴的文件
for i in `find -type d | grep ./`;do rm $i/*.log;done
12、批量修改文件後綴
rename .tar.gz zip *.tar.gz
13、swift日常命令
/etc/swift> sudo swift-ring-builder account.builder create 18 3 1
/etc/swift> sudo swift-ring-builder container.builder create 18 3 1
/etc/swift> sudo swift-ring-builder object.builder create 18 3 1
/etc/swift> export ZONE=1
/etc/swift> export STORAGE_LOCAL_NET_IP=192.168.1.101
/etc/swift> export WEIGHT=100
/etc/swift> export DEVICE=sdb1
添加
/etc/swift> sudo swift-ring-builder account.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6002/$DEVICE $WEIGHT
/etc/swift> sudo swift-ring-builder container.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6001/$DEVICE $WEIGHT
/etc/swift> sudo swift-ring-builder object.builder add z$ZONE-$STORAGE_LOCAL_NET_IP:6000/$DEVICE $WEIGHT
刪除
/etc/swift> sudo swift-ring-builder account.builder remove z$ZONE-$STORAGE_LOCAL_NET_IP:6002/$DEVICE $WEIGHT
/etc/swift> sudo swift-ring-builder account.builder remove z1-192.168.1.101:6020
/etc/swift> sudo swift-ring-builder account.builder rebalance
/etc/swift> sudo swift-init proxy start
# vgdisplay
# lvcreate -n swiftlv -L 10G vg0
# mkfs.xfs /dev/mapper/vg0-swiftlv
# vi /etc/fstab
/dev/mapper/vg0-swiftlv /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0
# service rsyncd start
rsync rsync://[email protected]
/etc/swift> sudo swift-init all start
curl -k -v -H'X-Storage-User: system:root' -H 'X-Storage-Pass: testpass' https://192.168.1.100:8080/auth/v1.0
swift -Ahttp://192.168.1.100:8090/auth/v1.0 -U system:root -K testpass stat
swift -Ahttp://192.168.1.100:8090/auth/v1.0 -U system:root -K testpass post container1
swift -Ahttp://192.168.1.100:8090/auth/v1.0 -U system:root -K testpass upload container1 /etc/swift/*.ring.gz
swift -Ahttp://192.168.1.100:8090/auth/v1.0 -U system:root -K testpass list
同步所有的結點之後, 確保管理員( admin)可以訪問 /etc/swift 目錄,並且確保所有ring的.gz文件所有者都是正確的。
shell日常運維shell命令集合