常用命令

查询linux当前各个状态的连接数量

  • 查询各个连接状态的连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  • 统计80端口连接数
netstat -nat|grep -i "80"|wc -l
  • 统计httpd协议连接数
ps -ef|grep httpd|wc -l
  • 统计已连接上的,状态为 established 的连接数
netstat -na|grep ESTABLISHED|wc -l
  • 查出哪个IP地址连接最多
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r 
netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r 

mysql随机取一条数据

FROM `tablename` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `tablename`)-(SELECT MIN(id) FROM `tablename`))+(SELECT MIN(id) FROM `tablename`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;

mysql查询哪个表占用空间大

  • mysql数据库中information_schema 数据库存储了数据库很多信息,可以通过查询tables表来获得所需要的表相关信息。
    mysql> select table_name,table_rows from tables order by table_rows desc limit 10;

mysql更改sock文件位置

  • 由于Mysql在有时会出现mysql.sock定位误差,会造成不连接数据库。
[client]
socket = /tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock

没有[client]的话。自己加入~

mysql不停机修改最大连接数

  • gdb是一个工具,需要yum安装一下
    然后找到mysql.pid文件所在位置
ps -ef | grep mysql
mysql     1310     1 99 12月09 ?      4-19:39:03 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

然后使用gdb修改连接数即可

gdb -p $(cat /var/run/mysqld/mysqld.pid) -ex "set max_connections=500" -batch  

mysql的sock文件丢失

  • sock文件丢失,造成数据库无法启动,日志中显示mysql_safe之类的提示,但没有error

  • mysql日志:
    160608 09:18:25 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
    160608 09:18:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    160608 09:18:26 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

  • 解决方法
    $/usr/local/bin/mysql_install_db //到bin目录执行,重建授权表

    $/usr/local/bin/mysqld_safe &

linux清除缓存

  • 这个文件可以设置的值分别为1、2、3。它们所表示的含义为:
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。

docker清理空间

  • 该指令默认只会清除悬空镜像,未被使用的镜像不会被删除
    docker system prune -a
    删除任何未被容器关联引用的卷
    docker volume rm $(docker volume ls -qf dangling=true)

复制文件进docker

  • docker ps -a
    找出我们想要的容器名字
    查找容器长ID
docker inspect -f '{{.ID}}' python
docker cp 本地路径 容器长ID:容器路径**[备注:其实容器ID用短ID就可以]**
docker cp /etc/localtime 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/etc/localtime
  • 从docker往外面复制文件,也一样的,把路径对换一下就好了

查询比较耗时的SQL

select * from information_schema.processlist where time >3 and state='Sending data';

linux耗时操作防止终端挂起

  • 在新session执行命令(使进程不属于接受 HUP 信号的终端的子进程,那么就不会受到 HUP 信号的影响)
  • setsid ./shell.sh

linux删除文件名乱码的文件

  • ls -i 找到节点编号
  • find -inum 33333 -delete 根据节点编号找到并删除文件
  • image.png

锁定网卡配置文件

  • 锁定文件
cd /etc/sysconfig/network-scripts/
chattr +i ifcfg-eth0
  • 解锁文件
chattr -i ifcfg-eth0

docker部署jenkins

  • docker run -p 8080:8080 -p 50000:50000 -v /home/docker/jenkins:/var/jenkins_home jenkins
  • 应该会报如下错误
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

需要给目录增加jenkins权限 chown -R 1000:1000 /home/docker/jenkins

  • 默认密码的查找方式 docker exec -it dc68ae9d6603 cat /var/jenkins_home/secrets/initialAdminPassword
  • 解决“Getting Started”卡死问题 jenkins_home/jenkins/updates$ vim default.json
    将"http://www.google.com/",修改为"connectionCheckUrl":"http://www.baidu.com/"
    修改完成后如果重启docker服务,上面这个配置会被还原,以后再跟进一下看看

docker容器支持真正的root权限

  • --privileged=true

docker里的程序(php)需要访问磁盘文件的时候可能会没有权限

  • 需要给目录增加jenkins权限 chown -R 1000:1000 /wwwroot

docker容器里安装软件无法启动(报错:Failed to get D-Bus connection: Operation not permitted

  • 这个的原因是因为dbus-daemon没能启动。其实systemctl并不是不可以使用。将你的CMD或者entrypoint设置为/usr/sbin/init即可。会自动将dbus等服务启动起来。
docker run -itd -name mysql   mysql-yum-install /usr/sbin/init
docker exec -it mysql /bin/bash

gitlab docker构建镜像报如下错误

 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied
  • 原因是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
  • 设置一下用户权限
usermod -aG docker gitlab-runner

pgsql 备份与还原

备份:pg_dump -h localhost -p 5432 -U postgres -W -F c -b -v -f "/databak/database.backup" database
恢复:pg_restore -h localhost -p 5432 -U postgres -W -d database -v "/databak/database.backup"

docker里的程序控制台日志太大的问题

  • 是因为控制台输出的日志系统会记录在一个文件里,当输出内容太多的时候,这个日志文件就会特别大,在启动参数里增加下面两个参数即可
--log-opt max-size=10m --log-opt max-file=3

windows下不安装第三方工具抓包

  • 首先开始抓包(注意:命令行需要管理员权限启动),这个命令下面还有很多参数,详细的自己百度吧
netsh trace start capture=yes scenario=NetConnection tracefile=C:\net.etl maxSize=200M
  • 然后停止抓包
netsh trace stop
  • C盘根目录下会出现两个文件 net.etl 和 net.cab ,cab文件里包含里系统非常全面的配置信息,etl可以用“Microsoft Message Analyzer“工具打开

swarm灰度发布

  • image 指定要更新的镜像
  • update-parallelism 指定最大同步更新的任务数
  • update-delay 指定更新间隔
docker service update --image image-name --update-delay 15s  --update-parallelism 1 service-name

CentOS7里network和NetworkManager

CentOS里提供了两套网络管理工具network和NetworkManager,但是我们在实际使用过程中发现他两个会有冲突,目前NetworkManager版本也比较低,比较适合于桌面端,在服务器上关闭掉并使用network就好了

chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network start

swarm添加管理节点

docker swarm join-token manager

docker build添加代理

docker build . \
    --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \
    --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \
    --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
    -t your/image:tag

防火墙规则

新增防火墙规则(允许指定ip访问指定端口):
firewall-cmd  --permanent --add-rich-rule=" \
rule family="ipv4" \
source address="192.168.1.11" \
port protocol="tcp" \
port="8080" \
accept"
删除防火墙规则:
firewall-cmd --permanent --remove-rich-rule=" \
rule family="ipv4" \
source address="192.168.1.11" \
port protocol="tcp" \
port="8080" \
accept"
允许10.0.0.55访问所有端口(允许指定ip访问所有端口):
firewall-cmd --zone=public --permanent --add-rich-rule=" \
rule family="ipv4" \
source address="10.0.0.55" \
accept" 
移除10.0.0.55访问所有端口:
firewall-cmd --zone=public --permanent --remove-rich-rule=" \
rule family="ipv4" \
source address="10.0.0.55" \
accept"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,151评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,465评论 3 405
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,429评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,147评论 1 301
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,149评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,614评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,965评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,950评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,486评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,524评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,640评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,228评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,976评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,407评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,552评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,215评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,714评论 2 366

推荐阅读更多精彩内容