很多时候,你的目录开头是大写.这时候你cd到他的时候,就需要切到大写,如果可以不区分大小写多好呢..😆
bind "set completion-ignore-case on"
[root@VM_0_11_centos ~]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since 三 2018-03-07 08:50:52 CST; 18s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 30662 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255)
Main PID: 30662 (code=exited, status=255)
3月 07 08:50:52 VM_0_11_centos systemd[1]: Starting OpenSSH server daemon...
3月 07 08:50:52 VM_0_11_centos sshd[30662]: /etc/ssh/sshd_config line 154: unsupported option "inetClientAliveInterval".
3月 07 08:50:52 VM_0_11_centos systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
3月 07 08:50:52 VM_0_11_centos systemd[1]: Failed to start OpenSSH server daemon.
3月 07 08:50:52 VM_0_11_centos systemd[1]: Unit sshd.service entered failed state.
3月 07 08:50:52 VM_0_11_centos systemd[1]: sshd.service failed.
sshd -t
[root@VM_0_11_centos ~]# sshd -t
/etc/ssh/sshd_config line 154: unsupported option "inetClientAliveInterval".
这就很明显了,说没有
inetClientAliveInterval
这个配置
vi /etc/ssh/sshd_config
AddressFamily inetClientAliveInterval 60
ClientAliveCountMax 1
原来是echo的时候没有换行!!!
AddressFamily inet
ClientAliveInterval 60
ClientAliveCountMax 1
service sshd restart
Redirecting to /bin/systemctl restart sshd.service
这里演示一个nginx切割后的日志文件作为例子
gunzip -c access.log-20180222.gz > access.log-20180222.log
yum install zip -y
yum install unzip -y
把2018-02-24-00-00-03文件夹压缩为ailuoy.zip,最终解压出来是2018-02-24-00-00-03文件夹
zip -q -r ailuoy 2018-02-24-00-00-03/
把2018-02-24-00-00-03文件夹里面的内容压缩为ailuoy.zip,同时压缩到
/mnt/www/iluoy.com/storage/app/ailuoy
目录下
cd 2018-02-24-00-00-03
zip -q -r /mnt/www/iluoy.com/storage/app/ailuoy/ailuoy *
解压2018-02-24-00-00-03.zip到当前目录
unzip 2018-02-24-00-00-03.zip
解压2018-02-24-00-00-03.zip到path目录
unzip 2018-02-24-00-00-03.zip -d path
sudo -u www stat /home/junjia/www/wanpi-back
➜ wanpi-back git:(dev-luoyang) ✗ sudo -u www stat /home/junjia/www/wanpi-back
stat: 无法获取"/home/junjia/www/wanpi-back" 的文件状态(stat): 权限不够
➜ wanpi-back git:(dev-luoyang) ✗ sudo -u www stat /mnt/www/iluoy.com
文件:"/mnt/www/iluoy.com"
大小:4096 块:8 IO 块:4096 目录
设备:fd01h/64769d Inode:1180274 硬链接:14
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-03-06 12:49:16.976407991 +0800
最近更改:2018-03-04 02:15:10.964330914 +0800
最近改动:2018-03-04 02:15:10.964330914 +0800
创建时间:-
// 建立abc 的软连接,相当于在cde创建了一个abc的快捷方式
ln -s abc cde
// 建立abc的硬连接
ln abc cde
// 注意不是rm -rf abc/
rm -rf abc
yum install tree -y
tree(选项)(参数)
-a:显示所有文件和目录;
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各种类型;
-d:先是目录名称而非内容;
-D:列出文件或目录的更改时间;
-f:在每个文件或目录之前,显示完整的相对路径名称;
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
-i:不以阶梯状列出文件和目录名称;
-l:<范本样式> 不显示符号范本样式的文件或目录名称;
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
-n:不在文件和目录清单加上色彩;
-N:直接列出文件和目录名称,包括控制字符;
-p:列出权限标示;
-P:<范本样式> 只显示符合范本样式的文件和目录名称;
-q:用“?”号取代控制字符,列出文件和目录名称;
-s:列出文件和目录大小;
-t:用文件和目录的更改时间排序;
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
查看wanpi-back文件夹所有文件 深度1
tree -a wanpi-back -L 1
wanpi-back
├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── config
├── database
├── docs
├── .env
├── .env.example
├── .git
├── .gitattributes
├── .gitignore
├── .idea
├── _ide_helper.php
├── package.json
├── phpunit.xml
├── public
├── resources
├── routes
├── server.php
├── storage
├── tests
├── vendor
├── webpack.mix.js
└── yarn.lock
useradd testuser 创建用户testuser
passwd testuser 给已创建的用户testuser设置密码
说明:新创建的用户会在/home下创建一个用户目录testuser
usermod --help 修改用户这个命令的相关参数
userdel testuser 删除用户testuser
rm -rf testuser 删除用户testuser所在目录
groupadd testuser 创建 testuser 组
useradd -g testuser testuser 创建testuser用户并加入testuser组
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
或者top (然后按下M,注意这里是大写)
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
// 如果是10个进程,K=10,如果是最高的三个,K=3
ps -aux | sort -k4nr | head -K
或者top (然后按下P,注意这里是大写)
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
该命令组合实际上是下面两句命令:
- ps aux|head -1
- ps aux|grep -v PID|sort -rn -k +3|head
其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。 接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。 sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)
awk '{print $1}' access.log | sort -n | uniq | wc -l
grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l
awk '{print $1}' access.log | sort -n |uniq -c | sort -rn | head -n 100
awk '{print $1}' access.log | sort -n |uniq -c |awk '{if($1 >100) print $0}'|sort -rn
grep '104.217.108.66' access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100
awk '{print $7}' access.log | sort |uniq -c | sort -rn | head -n 100
grep -v ".php" access.log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100
cat access.log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less
tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort -nr|less
awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100
awk '{print $4}' access.log |cut -c 14-18|sort|uniq -c|sort -nr|head -n 100
awk '{print $4}' access.log |cut -c 14-15|sort|uniq -c|sort -nr|head -n 100
在nginx log中最后一个字段加入$request_time
cat access.log|awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20
cat access.log|awk '($NF > 1 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
grep 'Baiduspider' access.log |wc -l
grep 'Baiduspider' access.log |grep '404' | wc -l
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
突然有一次开了一个swoole_http,然后内存就满了...导致很多服务不能正常提供服务,这样的进程有很多,很多 一个个kill,根本kill不完
www 14524 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14525 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14526 0.0 0.4 550140 19032 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14527 0.0 0.4 550140 19032 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14528 0.0 0.4 550140 19032 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14529 0.0 0.4 550140 19032 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14537 0.0 0.4 539624 17952 ? S 19:48 0:00 swoole_http_server: manager process for ailuoy
www 14543 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14544 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14545 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
www 14546 0.0 0.4 467916 17956 ? S 19:48 0:00 swoole_http_server: worker process for ailuoy
.......
ps aux | grep swoole| grep -v grep|cut -c 9-15 | xargs kill -9
查找/data/logs/lequ/request目录下
request-2018-07-1*.log
的日志包含 d74666dc4b5b69f153ad6cc63684486e和 collect-songs的日志行
find /data/logs/lequ/request -name "request-2018-07-1*.log" | xargs grep "d74666dc4b5b69f153ad6cc63684486e" | grep collect-songs
新版本的CentOS 系统里使用’targets’ 取代了运行级别的概念。系统有两种默认的’targets’: 多用户.target 对应之前版本的3 运行级别; 而图形.target 对应之前的5运行级别。
systemctl get-default
systemctl set-default multi-user.target
systemctl set-default graphical.target
vim .env
# 进入选择模式
ctrl+v
# 按上下键选择行数
# 进入写入模式
shift+i
# 写入注释符号#
# 退出 esc
vim .env
# 进入选择模式
ctrl+v
# 按上下键选择行数
# 删除注释 按键位d
很多时候我们需要统计脚本的是跑了多少时间..如果又要输出大量日志的话..可能效果不是很理想
time php artisan command
我的php-fpm是用www用户在跑,所以项目的权限都是www用户的权限,junjia用户登录到服务器跑脚本,这时候权限就冲突了..
所以,这时候把junjia加入到www用户组即可
usermod -a -G www junjia
$ id junjia
uid=1001(junjia) gid=1001(junjia) 组=1001(junjia),1000(www)
vi /etc/sudoers
# 不需要输入密码
junjia ALL = (ALL) NOPASSWD: ALL
curl -i -X POST \
-H 'Content-type':'application/json' \
-d '{"page":"0","token":"xxxx"}' \
"http://xxxxx.com/api/v1.0/song/list?appName=lequ&version=99&build=1.1&os=ios&channel=appstore"
ab -T 'application/json' -p postfile -c 4 -n 10000 'http://127.0.0.1:5200/api/v1.0/song/list?appName=lequ&version=99&build=1.1&os=ios&channel=appstore'
{"page":"0","token":"xxxxx"}
在vim粘贴代码的时候,粘贴的代码(shift+insert)会自动缩进,导致格式非常混乱
在vim中,进入命令模式输入:set paste,在进行粘贴,就不会乱码了。但是这样存在一个问题,就是不会自动产生缩进了,因此需要在粘贴完成之后命了输入:set nopaste,恢复缩进模式。
在vimrc文件中添加set pastetoggle=<F9>
,这样<F9>
就成了改变paste模式的快捷键,日后再粘贴时,就可以使用<F9>
进行切换了。是不是方便了很多。
sudo su - root
fdisk -l
fdisk /dev/vdb
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Command (m for help): wq
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
mkfs.ext4 /dev/vdb1
mkdir /data
vim /etc/fstab
/dev/vdb1 /data ext4 defaults 0 0
mount -a
df -h