linux使用及shell常用命令技巧

 

Linux释放内存的命令:
sync
echo 3 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存

 

进程启动时间
ps -eo pid,lstart|grep 24191

新建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;


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

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

 

测试dd生产文件
time dd if=/dev/zero of=./1G bs=1M count=1024 oflag=dsync

下载整个目录
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/rc

删除指定行前的注释
# 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

去除行首空格
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


新磁盘/分区挂载

1、pvcreate /dev/vdb
2、vgcreate datavg /dev/vdb
3、lvcreate -n codelv -L 600G datavg
4、lvcreate -n backuplv -L 400G datavg
5、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

 

转载于:https://www.cnblogs.com/magicyang/p/10749831.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值