记一次文件丢失过程

文件备份结构是AD域DFS两台服务器相互复制同步。也就是所谓的热备份。

再加一台NAS设置网络共享,每天备份一次。作为冷备份。我用的Windows Server Backup整个服务器完整备份。这种备份是完完全全的重新备份。也就是备份一开始会删除原先的备份再重新备份,过程不能中断。中断的话你什么文件也找不回。(这个确实我之前还真不知道)

事故起因:更换一台AD域服务器包含文件的硬盘,没有删除DFS复制组。整个镜像到新硬盘。这操作本身没有问题。但是操作人员嫌过程太慢,而且不熟悉DFS主从复制原理。直接删除了DFS目录下的文件,以为DFS服务会从另一台服务器把文件复制过来。

事件结果:这等于就把两台服务器的文件全部删除了。由于公司很多人员未开工,加上他是接近下班才把服务器上线,没有及时发现事故。到了第二天才知道。而我做的冷备份是每天晚上11点开始备份。也就是11点时候,三个地方的文件无意幸免,全部删除。而唯一能恢复的就只有他原先替换下的故障硬盘。

事件教训:容灾备份果真是最难做的。我外面的都防住了。却防不住自己人动手。做备份方案一定要了解备份原理,不要只觉得做了备份就安枕无忧了。设置事件报警。

Mac OS设置无污染上网环境

最近dns污染太严重,没办法只能自己动手解决了

1,准备软件

brew install dnsmasq #dns小型server
brew install dnscrypt-proxy #dns代理,主要让dns数据包走专用通道
https://github.com/felixonmars/dnsmasq-china-list #dns配置文件,主要加快国内访问
https://github.com/v2ray/v2ray-core #MacOS客户端软件

2,首先配置好你的V2ray,使其能连上你的科学上网服务器。这个如果不会我在开一个教程。

3,修改 dnscrypt-proxy 的配置文件 /usr/local/etc/dnscrypt-proxy.toml。找到这几处 listen_addresses = [‘127.0.0.1:3333’]这个3333你可自己修改相应的端口数值,也可以直接照搬我的。force_tcp = true,(默认false)这个打开强制dns走tcp协议,避免污染。http_proxy = ‘http://127.0.0.1:1087’,去掉这个前面的注释#。1087是你的V2ray的本地http代理端口号,可自己修改。

4,修改dnsmasq配置文件 /usr/local/etc/dnsmasq.conf。这个文件我们不动,新增一个配置文件到 /usr/local/etc/dnsmasq.d/目录下,文件名自定比如base.conf。配置如下:

# 不连接自动下发的dns
no-resolv
# 不检查有关解析的配置文件更新
no-poll
# 配置文件路径,加载dnsmasq-china-list的那两个配置文件
conf-dir=/usr/local/etc/dnsmasq.d
# 附加Hosts文件,可有可无,我觉得以后可能还是需要用到Hosts,就加入了这一行
addn-hosts=/usr/local/etc/dnsmasq.hosts
# 上游服务器设置成DNSCrypt,也就是刚才dnscrypt-proxy里的端口号和监听地址
server=127.0.0.1#3333
# 缓存大小,默认是150,最大9999
cache-size=3000
#增大缓存在本地的时间,减少请求次数。最大3600
min-cache-ttl=3600
#重新加载后清空缓存
clear-on-reload

5,把https://github.com/felixonmars/dnsmasq-china-list下载回来的文件有带conf结尾的,复制到/usr/local/etc/dnsmasq.d/目录下。其实他自带了安装程序,但我用不到更新,故就不安装了。

6,启动和测试

sudo brew services start dnscrypt-proxy #启动并设置开机启动
sudo brew services start dnsmasq #启动并设置开机启动
sudo lsof -Pni UDP:53 #查看端口是否有对应程序

7,dnsmasq的配置文件有一行addn-hosts=/usr/local/etc/dnsmasq.hosts。这个要注意下。如果你的V2ray的地址是域名的话,请在这里做好解析工作。否则当你设置dns为127.0.0.1后,你的V2ray可能连不上。格式如下

90.life 45.78.75.143

用Python写一个IP地址csv转txt文本文件更新RosMikrotik路由器地址列表

初级怪兽,请见笑。

import requests
import pandas
import os
import csv
# 保存csv
def save_csv():
    r = requests.get(‘https://regionip.aliyun.com/publish/abtn-ip2location.csv’)
    with open(r’taobaoip.csv’, ‘wb’)as f:
        f.write(r.content)
    return (r.content)
# 转换csv并保存
def csv_txt():
    data = pandas.read_csv(‘taobaoip.csv’, encoding=’utf-8′, names=[‘A’, ‘B’, ‘C’, ‘D’, ‘E’])
    slist = data[‘A’]
    atxt = open(‘taobaoip.txt’,’w’)
    count = 1
    for kt_line in slist:
        atxt.writelines(‘add address=’+kt_line)
       atxt.writelines(‘ disabled=no list=”TaoBaoIP”‘)
       atxt.writelines(‘\n’)
       count += 1
    atxt.close()
    print (f’总计更新了{count}IP’)
    with open(‘taobaoip.txt’,’r+’) as ftxt:
        contxt = ftxt.read()
        ftxt.seek(0,0)
        ftxt.write(‘/ip firewall address-list\n’+contxt)
    return
if __name__ == “__main__”:
    save_csv()
    csv_txt()