version: "3.2"services:rabbitmq:image: rabbitmq:3-management-alpinecontainer_name: 'rabbitmq'environment:- RABBITMQ_DEFAULT_VHOST=/- RABBITMQ_DEFAULT_USER=admin- RABBITMQ_DEFAULT_PASS=Rabbitmq2022- RABBITMQ_ERLANG_COOKIE=rabbitmq-localdevports:- 5672:5672- 15672:15672volumes:- ./data:/var/lib/rabbitmq- ./log:/var/log/rabbitmqnetworks:- rabbitmq_go_netnetworks:rabbitmq_go_net:driver: bridge
Reference:
https://x-team.com/blog/set-up-rabbitmq-with-docker-compose/
https://blog.yowko.com/docker-compose-rabbitmq-cluster/
* * * * * command(s)- - - - -| | | | || | | | ----- Day of week (0 - 7) (Sunday=0 or 7)| | | ------- Month (1 - 12)| | --------- Day of month (1 - 31)| ----------- Hour (0 - 23)------------- Minute (0 - 59)
[root@xxx ~]# cat crontab.sh#!/bin/bashstep=15for (( i = 0; i < 60; i=(i+step) )); dosh /tmp/test.shsleep $stepdoneexit 0
实际要执行的脚本
[root@xxx ~]# cat test.sh#!/bin/bashcd /data/www && git pull >> /tmp/test.log#cd /data/www && git pull > /dev/null 2>&1[root@xxx ~]# crontab -l* * * * * /tmp/crontab.sh
ansible prod-consul -m shell -a " echo '* */6 * * * /root/clear-ram.sh' >> /var/spool/cron/root"
./kafka-topics.sh --create --zookeeper 0.0.0.0:2181 --replication-factor 1 --partitions 1 --topic my-topic
./kafka-topics.sh --zookeeper 0.0.0.0:2181 --delete --topic my-topic
./kafka-topics.sh --list --zookeeper 0.0.0.0:2181
./kafka-consumer-groups.sh --bootstrap-server 0.0.0.0:9092 --list
./kafka-consumer-groups.sh --bootstrap-server 0.0.0.0:9092 --describe --group group1 --members
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group group1
./kafka-consumer-groups.sh --bootstrap-server 0.0.0.0:9092 --describe
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。
基于日志增量订阅和消费的业务包括
(1)可以在命令下使用show table status \G命令查看:
(2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小
其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。
selecttable_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'from information_schema.tablesgroup by table_schemaorder by sum(data_length) desc, sum(index_length) desc;
selecttable_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)'from informa
NSCD(Name Service Cache Daemon)是服务缓存守护进程,它为NIS和LDAP等服务提供更快的验证。不管是什么系统,缓存是一项非常重要的技术[或机制],缓存的主旨就是提高客户端访问速度。
NSCD(name service cache daemon)是GLIBC关于网络库的一个组件,服务基于glibc开发的各类网络服务,基本上来讲我们能见到的一些编程语言和开发框架最终均会调用到glibc的网络解析的函数(如GETHOSTBYNAME or GETHOSTBYADDR等),因此绝大部分程序能够使用NSCD提供的缓存服务。当然如果是应用端自己用socker编写了一个网络client就无法使用NSCD提供的缓存服务,比如DNS领域常见的dig命令不会使用NSCD提供的缓存,相反ping得到的DNS解析结果将使用NSCD提供的缓存。
本质上NSCD不止为DNS提供缓存服务,同时可以为passwd/group/hosts等服务提供缓存,本文重点介绍的是DNS(hosts)范畴内的缓存,相关测试结果和代码的对象对应的是glibc-2.17版本。
$ yum -y install nscd
$ apt-get install nscd
$ nscd --help用法: nscd [选项...]Name Service Cache Daemon.-d, --debug Do not fork and display messages on the currenttty-f, --conf
sync
echo "3" > /proc/sys/vm/drop_caches
As this is a non-destructive operation, and dirty objects are not freeable, the user should run "sync" first in order to make sure all cached objects are freed.
swapon -s
如果返回的信息概要是空的,则表示 Swap 文件不存在。
dd if=/dev/zero of=/var/swap/swapfile bs=4G count=8dd if=/dev/zero of=/var/swap/swapfile bs=1M count=4096【参数说明】if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
mkswap /var/sw
Linux服务器是系统重要的业务运行平台,对服务器进行巡检能够及时发现服务 器的隐患,以便于改善和优化服务器的性能;观察服务器的运行状况,及时对
设备进行调整,保证服务器的24小时不间断的工作。
| 检查项 | 检查操作 |
|---|---|
| 机器型号 | dmidecode 1 grep "Product Name" |
| CPU | cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c |
| 内存 | free -m |
| 磁盘 | df -h |
| 网卡 | ifconfig -a |
| 操作系统 | uname -a |
| 检查项 | 检查操作 | 参考指标 |
|---|---|---|
| CPU占用率 | top | CPU每个线程占用率小于80% |
| CPU负载 | uptime | CPU负载应小于10 |
| 内存占用率 | free -m | 内存使用率小于80% |
| 内存swap使用率 | free -m | swap使用率小于10% |
| 磁盘使用率 | df -ah | 磁盘使用率小于80% |
| 磁盘负载 | iostat -xkd 1 | uti 1应在10%以内 |
| 系统开放端口 | netstat -an Igrep LISTEN | 只显示出提供对于服务的端 口,无关的端口一律关闭 |
| 网卡流量 | iftop | 网卡流量小于带宽的50% |
| 进程检查 | ps aux | more | 关闭占用资源的无用进程 |
| 检查项 | 检查操作 | 参考指标 |
|---|---|---|
| 进程检查 | ps -ef | grep mysqld | 检查port以及datadir |
| 数据库版本 | select version() | |
| 超大库检查 | du -sh | 每个数据库目录 |
官网下载最新的jenkins.war
下面是列表
https://updates.jenkins.io/download/war/
需要注意的是这里启动的java版本是
11.0.12
#!/bin/bashexport JAVA_HOME=/usr/local/java11/openjdkexport PATH=$PATH:$JAVA_HOME/binnohup java -Duser.home=/home/jenkins/master_data -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /home/jenkins/bin/master/jenkins.war >> /home/jenkins/data/all.log &
需要注意的是这里启动的java版本是
1.8.0_202
下面只是其中的一个agent,其他的只需要按需求将secret替换即可。
#!/bin/bashexport JAVA_HOME=/usr/local/jdk1.8.0_202export PATH=$PATH:$JAVA_HOME/binnohup java -jar /home/jenkins/bin/slave/agent.jar -jnlpUrl http://jenkins.xxx.com/computer/agent1/jenkins-agent.jnlp -secret 9cf71dd0b91ecbc7203fafe0bfbbefd947898ecdca51ab7f0332cf90e93a4840 -workDir "/home/jenkins/slave_data/agent1" >> /home/jenkins/slave_data/agent1/a
系统:centos 7.x
基础安装:docker、docker-compose
jenkins架构:一主三从
jenkins主从中需要的命令均通过挂载宿主机上的实现,如java、python、node等,均通过编译或二进制安装方式。
# 注意 --enable-optimizations 可能会报错,如果有就去掉$ ./configure --prefix=/usr/local/python3 --enable-optimizations$ make$ make install
version: '3.5'services:jenkins-master:# image: jenkinsci/blueoceanimage: reg.xxx.xxx/jenkins/jenkinsci-blueocean-1.25.0container_name: jenkins-masterprivileged: trueports:- 8080:8080- 50000:50000restart: alwaysvolumes:- /home/jenkins/data:/var/jenkins_home- /usr/local/apache-maven-3.8.3:/usr/local/maven-3.8.3- /usr/local/jdk1.8.0_202:/usr/local/jdk1.8.0_202- /usr/local/python3:/usr/local/python3- /usr/local/node-v16.6.0-linux-x64:/usr/local/node-v16.6.0-linux-x64