linux使用及shell經常使用命令技巧

 

Linux釋放內存的命令:
sync
echo 3 > /proc/sys/vm/drop_cacheshtml

drop_caches的值能夠是0-3之間的數字,表明不一樣的含義:
0:不釋放(系統默認值)
1:釋放頁緩存
2:釋放dentries和inodes
3:釋放全部緩存node

 

進程啓動時間
ps -eo pid,lstart|grep 24191python

新建mysql數據庫受權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'fnst1234' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'fnst1234' WITH GRANT OPTION;
flush privileges;mysql


文件(夾)大小
du -cm /home/1.sh |tail -1 | awk '{print $1}'linux

lsof | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20web

 

測試dd生產文件
time dd if=/dev/zero of=./1G bs=1M count=1024 oflag=dsyncsql

下載整個目錄
wget -nH -np -r http://10.27.15.121/salt_script/ITSM/
r遞歸
np不追朔至父目錄
nH不建立主目錄
wget -nH -np -r https://imagemagick.org/download/linux/CentOS/
wget -nH -np -r http://10.27.97.1/salt/centos73/2017.7.6/
全量同步
15 0 * * * /usr/bin/rsync -avzc --progress --delete -e "ssh -i /root/.ssh/id_rsa" /opt root@192.168.18.134:/doc/192.168.86.5/
增量同步
15 0 * * * /usr/bin/rsync -vzurtopg --progress --delete -e "ssh -i /root/.ssh/id_rsa" /opt root@10.37.57.249:/data/10.27.97.1數據庫

匹配行前追加內容
sed -i "/set -m/iline1\nline2" /etc/rc
匹配行後追加內容
sed -i "/set -m/aline1\nline2" /etc/rcubuntu

刪除指定行前的註釋
# enable snd-soc-wmt-fm34
sed -i '/exit 0/s/^#//' fs_patch/load_drivers.sh
給匹配行加上註釋
# disable snd-soc-wmt-fm34 back
sed -i '/^exit 0/s/^/#&/' fs_patch/load_drivers.sh vim

去除行首空格
sed 's/^[. ]\{1,\}//g' file
sed ‘s/^[ \t]*//g'
刪除行末空格
sed ‘s/[ \t]*$//g'
刪除全部空格
sed s/[[:space:]]//g

tcpdump抓取vrrp包
tcpdump -p vrrp -nn
tcpdump src host 10.37.100.214 and tcp port 22 -vv


awk對文件某列求和:
-F,用,號分隔,求第3行的和
awk -F, '{sum += $3};END {print sum}' test

>/var/log/messages:記錄Linux內核消息及各類應用程序的公共日誌信息,包括啓動、IO錯誤、網絡錯誤、程序故障等。對於未使用獨立日誌文件的應用程序或服務,通常均可以從該文件得到相關的事件記錄信息。
>/var/log/cron:記錄crond計劃任務產生的事件消息。
>/varlog/dmesg:記錄Linux系統在引導過程當中的各類事件信息。
>/var/log/maillog:記錄進入或發出系統的電子郵件活動。
>/var/log/lastlog:最近幾回成功登陸事件和最後一次不成功登陸事件。
>/var/log/rpmpkgs:記錄系統中安裝各rpm包列表信息。
>/var/log/secure:記錄用戶登陸認證過程當中的事件信息。
>/var/log/wtmp:記錄每一個用戶登陸、註銷及系統啓動和停機事件。
>/var/log/utmp:記錄當前登陸的每一個用戶的詳細信息

/var/spool/mail/root 記錄crontab執行的輸出記錄

# linux 下 取進程佔用 cpu 最高的前10個進程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

# linux 下 取進程佔用內存(MEM)最高的前10個進程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head


下載包
yum install --downloadonly --downloaddir=/tmp xxxx

# repoid是yum源配置地址中的項目名(name=xxx上面那個[]中的值)
reposync --repoid=openstack-kilo


新磁盤/分區掛載

一、pvcreate /dev/vdb
二、vgcreate datavg /dev/vdb
三、lvcreate -n codelv -L 600G datavg
四、lvcreate -n backuplv -L 400G datavg
五、mkfs.ext4 /dev/mapper/datavg-codelv
6. mkfs.ext4 /dev/mapper/datavg-backuplv
7. mkdir /code /backup
8. mount /dev/mapper/datavg-backuplv /backup
9. mount /dev/mapper/datavg-codelv /code
10 修改/etc/fstab 增長
/dev/mapper/datavg-backuplv ext4 defaults 1 2
/dev/mapper/datavg-codelv ext4 defaults 1 2

vgcreate datavg /dev/vdb
lvcreate -l 100%VG -n data datavg

yum下載安裝包機器關聯包
yum -y install --downloadonly --downloaddir=/tmp/ subversion

reposync -r <repo_name>

yum不能正常安裝卸載時
yum --setopt=tsflags=noscripts remove <package_name>


#mtime參數的理解應該以下:
-mtime n 按照文件的更改時間來找文件,n爲整數。
n表示文件更改時間距離爲n天, -n表示文件更改時間距離在n天之內,+n表示文件更改時間距離在n天之前。
例如:
-mtime 0 表示文件修改時間距離當前爲0天的文件,即距離當前時間不到1天(24小時)之內的文件。
-mtime 1 表示文件修改時間距離當前爲1天的文件,即距離當前時間1天(24小時-48小時)的文件。
-mtime+1 表示文件修改時間爲大於1天的文件,即距離當前時間2天(48小時)以外的文件
-mtime -1 表示文件修改時間爲小於1天的文件,即距離當前時間1天(24小時)以內的文件


利用Python自帶的包能夠創建簡單的web服務器。在DOS裏cd到準備作服務器根目錄的路徑下,輸入命令,例如:
python -m SimpleHTTPServer 8080
而後就能夠在瀏覽器中輸入
http://<ip>:<port>/<path>

利用python算linux系統加密的密碼
python -c 'import crypt; print crypt.crypt("cloud@123", "$6$c9V0sxmo")'|awk -F"$" '{print $NF}'

inotifywait -mrq --format '%w%f %e' -e close_write,moved_to,move_self /data/br1/sncd/ |grep '\.war ' --line-buffered

root密碼驗證,<ROOT_PASS>替換爲root用戶的密碼,pass中的單引號'須要替換爲'\''再傳入
true;pass=$(echo '<ROOT_PASS>' | sed -e "s/'/\\\\'/g");epass=$(cat /etc/shadow|grep root |awk -F"$" '{print $NF}' | awk -F":" '{print $1}');salt=$(cat /etc/shadow|grep -E "^root:" | awk -F"$" '{print "$"$2"$"$3}');value=$(python -c "import crypt; print crypt.crypt('${pass}', '${salt}')"|awk -F"$" '{print $NF}');[ "${epass}" = "${value}" ] && echo 0 || echo 1
例:
true;pass=$(echo ')(*&^%$#@!'\''"' | sed -e "s/'/\\\\'/g");epass=$(cat /etc/shadow|grep root |awk -F"$" '{print $NF}' | awk -F":" '{print $1}');salt=$(cat /etc/shadow|grep -E "^root:" | awk -F"$" '{print "$"$2"$"$3}');value=$(python -c "import crypt; print crypt.crypt('${pass}', '${salt}')"|awk -F"$" '{print $NF}');[ "${epass}" = "${value}" ] && echo 0 || echo 1

清理/var/spool/postfix/maildrop目錄
postsuper -d ALL

createrepo有時候你的軟件倉庫中含有不少的軟件包,雖然只是其中的一小部分有所改動可是你卻沒必要爲每一個軟件包從新產生元數據,這樣作明顯太浪費時間了。
這就是 --update 選項誕生的緣由。你像以前同樣運行 createrepo 命令可是添加了--update 選項.
例如:
createrepo --update /var/www/html/rhel63

linux對稱加解密,用aes-256-cbc 加密鎖用tecmint
[root@saltcmpreapp11 slb]# echo suning@123 | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint
U2FsdGVkX1/4AVBEtk7P+SAw+vwAULdSqARDuC+c/so=
解密
[root@saltcmpreapp11 slb]# echo U2FsdGVkX1/4AVBEtk7P+SAw+vwAULdSqARDuC+c/so= | openssl enc -aes-256-cbc -a -d -pass pass:tecmint
suning@123


vsftpd搭建時利用vsftpuser.txt生產db格式化文件
db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpd_login.db


日誌滾動執行如下命令當即生效
logrotate -f /etc/logrotate.d/lsyncd
或者執行如下命令第二天生效生效
/usr/sbin/logrotate -f /etc/logrotate.conf
重啓crond服務器
service crond restart


/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,moved_to,move_self /opt/maven/test &

ftp上傳
curl ftp://10.242.8.220/test/ -u <user>:<passwd> -T ./100M
curl ftp://10.230.64.190/test/ -u <user>:<passwd> -T ./a.txt
curl ftp://10.100.251.51/ -u <user>:<passwd> -T ./a.txt
下載
wget ftp://10.230.64.190/test/a.txt --ftp-user=sncdftp --ftp-password=fM_T67Wy7[qm
cront

文件建立時間
debugfs -R 'stat <1179805>' /dev/mapper/systemvg-optlv

curl ftp://10.242.8.208/salt-key/$(ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | cut -d: -f 2)-master.pem -u sncdftp:fM_T67Wy7[qm -T /etc/salt/pki/master/master.pem


清空海量文件的目錄
rsync --delete-before -v -d /tmp/empty/ /var/spool/postfix/maildrop/
使用空目錄/tmp/empty替換須要刪除的指定目錄
--delete-before receiver deletes before transfer (default)
-v 詳細輸出模式
這樣咱們要刪除的log目錄就會被清空了,刪除的速度會很是快。rsync實際上用的是替換原理,處理數十萬個文件也是秒刪。

 

增長 系統文件監控量
grep -q "max_user_watches=99999999" /etc/sysctl.conf
[ $? -ne 0 ] && { echo "fs.inotify.max_user_watches=99999999" >> /etc/sysctl.conf ; sysctl -p > /dev/null 2>&1 ; }
grep -q "max_queued_events=99999999" /etc/sysctl.conf
[ $? -ne 0 ] && { echo "fs.inotify.max_queued_events=99999999" >> /etc/sysctl.conf ; sysctl -p > /dev/null 2>&1 ; }
grep -q "max_user_instances=65535" /etc/sysctl.conf
[ $? -ne 0 ] && { echo "fs.inotify.max_user_instances=65535" >> /etc/sysctl.conf ; sysctl -p > /dev/null 2>&1 ; }

Ubuntu做成deb源指令,在包目錄
dpkg-scanpackages -m . /dev/null > Packages (非必要)
dpkg-scanpackages -m . /dev/null | gzip > Packages.gz -r

在/etc/apt/sources.list中寫入如下行
deb http://127.0.0.1/debs/test/ /


在Ubuntu , Debian或者Mint,代理例外設置:
$ sudo vi /etc/environment
http_proxy="http://proxy.com:8000"
no_proxy="127.0.0.1, localhost, *.cnn.com, 192.168.1.10, domain.com:8080"


在CentOS的,Fedora或RHEL :
$ sudo vi /etc/profile.d/proxy.sh
export http_proxy="http://proxy.com:8000"
export no_proxy="127.0.0.1, localhost, *.cnn.com, 192.168.1.10, domain.com:8080"

異常刪除時的強制刪除方法
rpm -e --noscripts 文件名

vim變黃
vim下
esc
:nohl

while只能讀一行就再也不執行
exec 3<tt.log #綁定tt.log到3號fd

while read -u3 line
do
#容易吃掉tty1讀入的代碼,好比sudo
done
exec 3<&- #關閉3號fd

鏈接超時時間設置
ssh -o ConnectTimeout=10 10.37.140.174 -vv


/bin/sh -c rm -rf /opt/zabbix/lldscripts;mkdir -p /opt/zabbix ;wget -q -c --tries=20 -r -nH -np --cut-dirs=5 ftp://10.37.183.34/ops/spcpuploadScript/zabbix/zabbix_script/1.1.1/lldscripts -P /opt/zabbix

iotop -oP

命令的含義:只顯示有I/O行爲的進程
pidstat -d 1

命令的含義:展現I/O統計,每秒更新一次

創建deb包
安裝一下包
yum install patch
rpm -ivh dpkg-1.16.18-3.el6.x86_64.rpm dpkg-dev-1.16.18-3.el6.noarch.rpm dpkg-perl-1.16.18-3.el6.noarch.rpm perl-TimeDate-1.16-11.1.el6.noarch.rpm
創建連接
dpkg-scanpackages /path/to/packages /dev/null |gzip > /path/to/packages/Packages.gz -r

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

相關文章
相關標籤/搜索