salt定义内核参数
salt的states语句支持直接定义内核参数,比较方便。需要注意的时对于7U的机器得指定config: /etc/sysctl.conf。 net.core.rmem_max: sysctl.present: - value: 67108864 - config: /etc/sysctl.conf net.core.rmem_default: sysctl.present: - value: 33554432 - config: /etc/sysctl.conf
salt的states语句支持直接定义内核参数,比较方便。需要注意的时对于7U的机器得指定config: /etc/sysctl.conf。 net.core.rmem_max: sysctl.present: - value: 67108864 - config: /etc/sysctl.conf net.core.rmem_default: sysctl.present: - value: 33554432 - config: /etc/sysctl.conf
直接把这个服务关闭了,测试了不影响带外登陆。 [email protected]: service.dead: - enable: False - provider: systemd
乘着双11的时候在阿里云买了一台vm,替换之前申请的AWS的机器。因此大陆访问AWS的机器实在是卡的不能用。。此次乘着重新迁移,把wordpress部署写成了一个salt的sls文件。 www-data: user.present: - shell: /bin/false - createhome: False group.present: - addusers: - www-data blog-pkgs: pkg.installed: - pkgs: - nginx - mariadb-server - php-fpm - php-mysql - php - tcpdump {% for d in ["log/mysql","run/mysqld" ]: %} /var/{{d}}: file.directory: - user: mysql - group: mysql - recurse: - user - group - makedirs: true {% endfor %} {% for d in [ "/var/log/nginx/","/var/cache/nginx","/var/lib/nginx/tmp/fastcgi"]: %} {{d}}: file.directory: - user: www-data - group: www-data - makedirs: true - require: - user: www-data {% endfor %} {% for f in ["dhparam.pem","server.crt.2016","server.key.2016"]: %} /etc/nginx/cert/{{f}}: file.managed: - source: salt://base/conf/nginx/{{f}} - makedirs: true {% endfor %} mariadb: service.running: - enable: True - reload: True - watch: - file: mysql-conf - require: - file: mysql-conf php-fpm: service.running: - enable: True - reload: True - watch: - file: php-conf - require: - file: php-conf nginx: service.running: - enable: True - reload: True - watch: - file: /etc/nginx/conf.d/443.conf - require: - user: www-data nginx_reload: cmd.wait: - name: systemctl reload nginx - watch: - file: /etc/nginx/conf.d/443.conf - file: /etc/nginx/nginx.conf - file: /etc/nginx/fastcgi_params php_reload: cmd.wait: - name: systemctl reload php-fpm - watch: - file: php-conf /etc/nginx/conf.d/443.conf: file.managed: - source: salt://base/conf/nginx/443.conf - template: jinja /etc/nginx/nginx.conf: file.managed: - source: salt://base/conf/nginx/nginx.conf - template: jinja /etc/nginx/fastcgi_params: file.managed: ...
sysdig是个小巧的系统诊断工具。一方面可以帮助排查应用的瓶颈,另外一方面也可做异常排查的诊断工具观察进程的一些行为。以前一直有个问题困扰着我,大量老机房下线时,基础的DNS服务下线非常麻烦。虽然能在dns服务器上抓包查看client段的ip并刷新client机器的resolv.conf配置,但是很多应用需要重启才能使用新的resolv.conf内的DNS IP,经常是1个机器上跑了各种agent,当前的负责人压根不了解是什么进程发起的。sysdig实际可以解决这样的case sysdig -p"%proc.name %proc.pid %fd.cip:%fd.cport %fd.sip:%fd.sport %fd.l4proto" fd.sport=“53” 另外有时也想看看ntp是否在做同步,可以用类似的方式 sysdig -p"%proc.name %proc.pid %fd.cip:%fd.cport %fd.sip:%fd.sport %fd.l4proto" fd.sport=“123” 附:1. sysdig介绍 http://www.sysdig.org/
默认情况下,连接sftp服务器(openssh内建的sftp server)时在服务器只能留下一个登陆连接的信息。为了便于知晓在一段时间内到底有哪些客户端来访问过本地的文件,可以通过调整sftp的日志。修改/etc/ssh/sshd_config,在sftp配置行添加”-l INFO” 完成配置```bash # override default of no subsystemsSubsystem sftp /usr/libexec/openssh/sftp-server -l INFO 
习惯了linux下的ip命令,在mac下非常不方便。mac下有个python包装的版本可以直接安装使用 brew tap brona/iproute2mac brew install iproute2mac
也忘记从什么时候开始,在linux下连无线路由器变得非常不稳定。当前内核版本:3.16.0-4-amd64无线网卡:intel Wireless-N 2200driver: iwlwifiversion: 3.16.0-4-amd64firmware-version: 18.168.6.1网上查了一圈,可能是驱动的问题,只能通过屏蔽11n来解决。 pm@debian:~$ cat /etc/modprobe.d/iwlwifi.conf options iwlwifi 11n_disable=1
之前每次编译内核都是自己慢慢手动把每个选项都确认一下。费时间不说,主要之自己最终实际还是编译了很多不用的模块,造成编译的时间是比较长的。今天试了下localmodconfig还不错。现在的内核配置的时候都是可以先make localmodconfig的,这个只是把当前内核加载了的模块都选上。如果自己有额外的没有插在电脑上的硬件驱动需要支持,可以单独menuconfig 单独选上。 测试了一下编译最新的内核,第一次的编译时间可以在13分钟左右搞定,之前每次都是要编译一个多小时(CPU是i5-2410M)。 make localmodconfig make menuconfig fakeroot make-kpkg -j 4 –initrd –revision=1.0V kernel_image kernel_headers
最近线上遇到windows机器访问其他机器的时候失败的情况。实际就是本地的端口不够用造成的。```bash $ netsh interface ipv4 show dynamicportrange protocol=tcp 可以修改一下起始端口 netsh int ipv4 set dynamicport tcp start=2000 num=63000netsh int ipv4 set dynamicport udp start=2000 num=63000netsh int ipv6 set dynamicport tcp start=2000 num=63000netsh int ipv6 set dynamicport udp start=2000 num=63000 然后修改一下注册表缩短time-wait的时间。regedit打开注册表,添加HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters“MaxUserPort”=dword:0000fffe“TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)
今天遇到一个ntp的同步问题。服务器上配置好了ntpd,在启动前也手动进行过同步,但是过段时间ntpq查询发现服务器即便能选出同步服务器,但是系统的时间偏差越来越大。服务器上实际有2个时钟,一个是主板电池驱动的硬件时间(RTC或者CMOS时间),另外就是系统时间。服务器启动时会从RTC里读取一次时间,之后便靠中断来计时。可以设置ntpd同步后讲时间写回RTC. 语法:adjtimex [OPTION]… 主要参数说明: -p, –print 输出内核时间变量的值 -t, –tick val 设置内核时钟计数间隔(微秒) -f, –frequency newfreq 设置系统时钟偏移量 -c, –compare[=count] 比较系统时钟和CMOS时钟 -i, –interval tim 设置时钟比较间隔时间 (sec) -l, –log[=file] 将当前时间记录到文件中 –host timeserver 查询时间服务器 -u, –utc 将CMOS时钟设置成UTC 在服务器上先比较一下系统时间和CMOS时间 # adjtimex --compare --- current --- -- suggested -- cmos time system-cmos error_ppm tick freq tick freq 1381503971 1.751318 1381503981 1.721794 -2952.4 10000 -1573016 1381503991 1.692179 -2961.5 10000 -1573016 10029 2456959 1381504001 1.662619 -2956.0 10000 -1573016 10029 2097584 1381504011 1.633055 -2956.4 10000 -1573016 10029 2122584 1381504021 1.603491 -2956.4 10000 -1573016 10029 2122584 1381504031 1.573928 -2956.3 10000 -1573016 10029 2117896 1381504041 1.544361 -2956.7 10000 -1573016 10029 2142896 ...