Featured image of post linux开发常用笔记

linux开发常用笔记

Do not go gentle into that good night

基础命令

centos7版本

cat /etc/redhat-release

解压

tar -zxvf grafana-8.0.6.linux-amd64.tar.gz

alias别名

解决重启后alias失效问题。非系统文件尽量放在home目录下

vim ~/.bashrc
alias cdhub='cd /home/github'
alias cdclash='cd /home/clash'
source ~/.bashrc

查看项目代码行数

yum -y install cloc
cloc src

显示当前文件夹大小

du -hs

linux开启swap分区

dd if=/dev/zero of=/swapfile bs=64M count=64
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon -s

linux生成32位随机串

cat /dev/urandom | head -n 10 | md5sum

https://www.cnblogs.com/Axianba/p/13131620.html

安装git2.x

sudo yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
sudo yum install git
git --version
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
ssh-keygen -t rsa -C "your_email@youremail.com"
cat /root/.ssh/id_rsa.pub

gcc升级到7.13

sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc
ln -sf /opt/rh/devtoolset-7/root/usr/bin/g++ /usr/bin/g++

安装cmake3

yum -y install cmake3
sudo ln -s /usr/bin/cmake3 /usr/bin/cmake
cmake --version

安装指定版本

wget https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-linux-x86_64.tar.gz
tar -zxvf cmake-3.24.0-linux-x86_64.tar.gz
ln -sf /usr/local/cmake-3.24.0-linux-x86_64/bin/cmake /usr/bin/cmake

安装mysql-8.0.24

cmake命令

mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1 -DMYSQL_TCP_PORT=3306

编译,安装,初始化,启动:

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
make&&make install
chown -R mysql:mysql /usr/local/mysql/
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf

统计80端口连接数

netstat -nat | grep -i "80" | wc -l
netstat -nat | grep -i "18000" | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' # 查看TCP连接状态

磁盘占满排查

df -hl
du -s /* | sort -nr |head # 选出排在前面的10个,head改成tail则是后面10个
du -sh /* | sort -nr # 加了h排序错乱
du -sh /home/* | sort -nr

内存占用高排查

top -o %MEM # 按内存占用排序
vmstat 2 # 每隔2秒展示内存占用情况
kill -9 `ps -ef| grep tail |awk '{print $2}' `
cat /proc/24573/status # 查看进程内存

健康检查脚本health-check-script

健康检查脚本

具体使用例子

centos7安装clash

url1
url2

安装prometheus和grafana

场景: 编写Dockerfile
grafana8.0.6官网下载

FROM quay.io/prometheus/prometheus
USER root
RUN echo 'Asia/Shanghai' >/etc/timezone
ADD prometheus.yml /etc/prometheus/

服务启动脚本

#!/bin/sh
mainpid=$(lsof -i:8686|grep 'LISTEN'|awk '{print $2}')
echo $mainpid
if [ $mainpid > 0 ];then
    echo "main process id:$mainpid"
    kill -9 $mainpid
    if [ $? -eq 0 ];then
    echo "kill $mainpid success"
    go run main.go
    else
    echo "kill $mainpid fail"
    fi
else
    go run main.go
fi

mysql相关

docker启动mysql5.7

docker run --name mysql -p 3306:3306 -v /home/github/utopia/my.cnf:/etc/my.cnf -v /home/mysql/data:/var/lib/mysql/data -e MYSQL_ROOT_PASSWORD=rootroot -d mysql:5.7

docker-mysql导表

docker exec -i mysql mysql -h 127.0.0.1 -P 3306 -u root -p'rootroot' < /home/github/ranger/dao/gozero_sys_dept.sql

innodb_space工具调试

innodb_space -s ibdata1 -T mask/t_mask -p 3 page-dump

抓包

常用抓包工具: Charles、wiresharks、http debug。 部分软件(eg: WPS windows端)只能抓到极少量的https请求。 解决办法:基于proxifier+charles抓包捕获所有请求。

最后更新于 2023年11月08日 20点57分43秒
慢慢来,欣赏啊
Built with Hugo
主题 StackJimmy 设计