配置postfix转发局域网邮件以及邮件黑洞

配置postfix允许自由转发内网的邮件,就改一个地方即可,添加允许发送的内网网段: vi /etc/postfix/main.cf ... mynetworks = 127.0.0.0/8, 172.16.0.0/16 ... 配置黑洞,所有邮件都接受,然后drop丢掉 relayhost = relay_transport = relay relay_domains = static:ALL smtpd_end_of_data_restrictions = check_client_access static:discard 当然,也可以把这些邮件都给送到amavis去,训练它识别垃圾邮件 测试邮件发送的命令: echo "body of your email" | mail -s "This is a Subject os version" -r "abc@kindlefan.xin" test@abc.com 注意:CentOS和Ubuntu默认居然都没有mail这条命令的话 yum install mailx apt-get install bsd-mailx

2024年01月24日 · 1 分钟 · 48 字 · 八戒

Ext4分区的缩小

缩小/ 的ext4分区步骤如下: 首先查看分区是什么文件类型 file -sL /dev/sd* /dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x2044148, GRUB version 0.94; partition 1: ID=0x82, starthead 32, startsector 2048, 8388608 sectors; partition 2: ID=0x83, active, starthead 75, startsector 8390656, 411039744 sectors, code offset 0x48 /dev/sda1: Linux/i386 swap file (new style) 1 (4K pages) size 1048575 pages /dev/sda2: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (large files) (huge files) 能看出来sda1是交换分区,那么要缩的分区是/dev/sda2,文件类型是ext4 ok,先确保虚机内/分区只占到5G,然后最好重新拷贝一下qcow2文件,把文件到弄到前面5G中。 然后修改一下kvm虚机配置,先加个iso进入rescue模式 virsh edit xxx 把boot顺序从hd改成cdrom ... <boot dev='hd'/> <boot dev='cdrom'/> ... <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/export/kvm/iso/CentOS-7-x86_64-NetInstall-1708.iso'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> ... 系统启动,进入cdrom安装,选择Troubleshooting ...

2024年01月24日 · 1 分钟 · 145 字 · 八戒

CentOS下做无线AP热点

自己的笔记本是装了个CentOS的系统,然后上面跑了个Vmware,又装了Win10,然后接两个屏幕,小的是linux跑gnome,大的是Win10屏幕,这样干活的。 路由更是混乱无比,网卡有tun0 / wlan0 / eth0 ,没有弄br0,这是大前提。如果弄br0的话,得改一堆东西。 这样的话wlan0无线网卡不联网就空闲了,于是想把无线网卡做AP共享出来,给手机用,做法真是比较复杂,弄了2天才弄好,网上的教程都是莫名啊,不太适合CentOS。 其实就是安装hostpapd,把做法记录一下: 首先不想改动已有的网络,那么桥接这条路就彻底断了,只能在无线网卡上做DHCP+NAT一条路了。 先检查网络: lspci -k | grep -A 3 -i "network" 03:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01) Subsystem: Lite-On Communications Inc Device 0662 Kernel driver in use: ath9k Kernel modules: ath9k 看到自己的网卡驱动是ath9k,再看看模块 modinfo ath9k | grep 'depend' depends: mac80211,ath9k_hw,ath9k_common,cfg80211,ath mac80211, cfg80211看到这个就放心了,driver就是nl80211 再确认一下,里面有* AP 字样这样就没问题了: iw list|grep -A8 "Supported interface modes:" Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * P2P-client * P2P-GO 首先看看自己的无线网卡物理地址,30:10:B3:6A:22:AA记下来 ...

2024年01月23日 · 2 分钟 · 290 字 · 八戒

给老旧的CentOS系统设置yum源

前同事N年前买了个linode的主机,一直用,系统是CentOS 5.6 x86_64的。 现在想在上面装个软件,结果yum失效了,重装系统不可能,只能找个旧的yum源设置一下了。 源: http://vault.centos.org ,找到子目录 cat /etc/yum.repos.d/base.repo [base] name=base baseurl=http://vault.centos.org/5.6/os/x86_64/ gpgcheck=0 enabled=1 最后清掉一下缓存就可以了 yum clean all

2024年01月23日 · 1 分钟 · 18 字 · 八戒

MySQL的备份网络优化

公司的MySQL服务器定时在凌晨4:00准时开始备份。 结果是会触发报警,net流量增高,cpu增高,磁盘io增高,这个是属于正常的,如何避免触发警报呢? 有4种方法: 一、优化io和cpu,让备份写磁盘的速度降下来,平稳的写入 nice -n 10 ionice -c2 -n 7 /usr/bin/mysqldump -S /var/lib/mysql/mysql.sock -uroot --single-transaction --quick\ --triggers -R --hex-blob --log-error=$db.log --databases $db > $basedir/$backdir/$db.sql 二、加快备份速度,多线程,让报警触发之前就结束备份 COMMIT_COUNT=0 COMMIT_LIMIT=10 for DB in `cat ListOfDatabases.txt` do mysqldump -h... -u... -p... --hex-blob --routines --triggers ${DB} | gzip > ${DB}.sql.gz & (( COMMIT_COUNT++ )) if [ ${COMMIT_COUNT} -eq ${COMMIT_LIMIT} ] then COMMIT_COUNT=0 wait fi done if [ ${COMMIT_COUNT} -gt 0 ] then wait fi 三、用cstream来控制流速 -t = throughput in bytes/sec 1000000是一兆,每秒只允许写一兆 mysqldump --single-transaction --quick -u <USER> -p<PASS> <Database> | cstream -t 1000000 > backup.sql 四、用pv来控制流速 –rate-limit Limit the transfer to a maximum of RATE bytes per second. 单位可以是:1k 1m 1g 1t ...

2024年01月23日 · 1 分钟 · 118 字 · 八戒

Dell R730XD服务器如何确定是哪块硬盘坏了

公司的Dell R720XD服务器是用来做Hadoop大数据的。 其中有两块300G的硬盘做Raid1,作为系统盘。 剩下3块硬盘是4TB,都是独立的,没有做任何Raid,单独做数据盘。 但是,这三块硬盘都被 Dell H330 的Raid控制器控制,于是3块硬盘呢,其实每个都是个单独的 Raid0 去机房巡检的过程中,发现一个硬盘亮黄灯。 从idrac口可以看到坏了个硬盘 问题来了,三块啊,到底是哪块坏了呢? 注意上图,修订是:GS0F,序列号是:Z1Z83DXH 我了个擦,所有硬盘都被h330接管,所以lspci什么也看不出来,只能看出是个lsi的MegaRAID!!! lspci|grep Mega 02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3008 [Fury] (rev 02) 没办法,先去下个MegaCLI吧: MegaCli.tgz cd /opt/MegaRAID tar zxvf MegaCli.tgz 再下个python, mega-status.py chmod 755 mega-status.py ./mega-status.py 注意这个脚本是引用了64位的megacli def_megaclipath = "/opt/MegaRAID/MegaCli/MegaCli64" 看运行结果啊 这里把修订和序列号连在一起了: GS0FZ1Z83DXH 对应c0u2p0,对应上面的c0u2,对应右边的/dev/sdc 所以是/dev/sdc坏掉了。 搞定。 这样就可以先卸载/dev/sdc,然后换盘了。

2024年01月23日 · 1 分钟 · 55 字 · 八戒

小微vps下运行nodejs需要注意的gc

NodeJS默认64位机器GC是有1.4G内存,所以,如果是512或者128兆内存的小vps,立时就不灵了。 需要加参数 --max_old_space_size=128 --optimize_for_size 一句话搞定。

2024年01月23日 · 1 分钟 · 5 字 · 八戒

在linux下用SSD盘来加速HDD硬盘

如上图,数据写到硬盘有两种方式,一种是Bcache用SSD做缓冲,加速最后的硬盘读写。另一种是直接读写硬盘,bypass模式。我们用的是第一种Bcache。 安装: $ yum install bcache-tools /dev/sda是硬盘,/dev/sdb是ssd, 首先把两个盘的数据都擦干净了 $ wipefs -a /dev/sda1 ; wipefs -a /dev/sdb1 格式化hdd和ssd,注意参数不同 $ make-bcache -B /dev/sda1 ; make-bcache -C /dev/sdb1 挂接bcache0 $ echo C_Set_UUID_VALUE > /sys/block/bcache0/bcache/attach $ mkfs.ext4 /dev/bcache0 $ mount /dev/bcache0 /mnt 修改硬盘写的方法,改成writeback(原来是writethrough) 1.临时生效的方法(重启失效) $ echo writeback > /sys/block/bcache0/bcache/cache_mode 2.永久生效的方法 $ echo /dev/sda1 > /sys/fs/bcache/register 最后查看一下状态: $ bcache-status -s

2024年01月23日 · 1 分钟 · 55 字 · 八戒

如何禁止libvirtd自带的dnsmasq启动

服务器要跑dnsmasq,同时机器还跑着kvm,和libvirtd自带dnsmasq的冲突了,需要禁掉libvirtd的。 方法很简单,如下: virsh net-list Name State Autostart Persistent -------------------------------------------------- default active yes yes virsh net-autostart --disable default virsh net-destroy default 搞定.

2024年01月23日 · 1 分钟 · 21 字 · 八戒

Nginx下lua根据客户端ip进行分发

公司的线上环境分为预发布和正式两个部分。 其实两个部分是公用一个Nginx前端的。 这样怎么分发呢? 用lua即可,如果是公司来的某个固定ip,则分发到预发布,如果不是,就走正式环境。这样测试就简单多了,运维统一设置一个无线wifi,接入这个wifi就走某个固定ip,到的全是预发布环境,不用这个wifi就走正式环境,非常方便测试。 用lua进行分发: location / { content_by_lua ' myIP = ngx.req.get_headers()["X-Real-IP"] if myIP == nil then myIP = ngx.req.get_headers()["x_forwarded_for"] end if myIP == nil then myIP = ngx.var.remote_addr end if myIP == "公司出口IP" then ngx.exec("@client") else ngx.exec("@client_test") end '; } location @client{ proxy_next_upstream error timeout; proxy_redirect off; proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $http_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 256k; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; proxy_buffer_size 8k; proxy_buffers 8 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_pass http://client; } location @client_test{ proxy_next_upstream error timeout; proxy_redirect off; proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $http_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 256k; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; proxy_buffer_size 8k; proxy_buffers 8 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_pass http://client_test; }

2024年01月23日 · 1 分钟 · 124 字 · 八戒