已经 34 ,工作年限应该不低,但实话说单单从你描述上看技能包和刚工作一两年的差不多,感觉对技术的追求不高?(当做是先入为主的观点)
回到问题,运维是要靠经验的,既然学了开发那么就动手把开发出来, 可以考虑拿去做一些能够改进工作中的一些痛点,这样的小事情做多了你自然会有更大的眼界和想法。
别买那种没有线缆的静电手环,大概率没用。类似串的小东西,有静电时接触金属会发光的才有用。
不一定有理解你需求+没用过 qvpn+vless
既然远程电脑都已经通过 qvpn 连接到了 nas , 那么你远程电脑直接使用 vless 不就行了。
v2ray 再启动个 inbound, 远程电脑连接 qvpn 后再使用 v2ray 连接一次。
1. 攻击者知道各家云厂商的 DDoS 黑洞策略,一般都是遭受攻击超过基础防护的一定阈值或时间后被黑洞 N 小时,所以攻击者只需要较低的成本就能实现拒绝服务的目的。
2. 任何云厂商不可能无限给你换 IP ,如果你是个体用户并且频繁被攻击甚至有可能会被云厂商劝退。
3. 最近几年国内游戏在上线节点被攻击勒索是常态了,你们游戏的玩家群、社区都有攻击者的眼线在里面,他们专们门针对游戏工作室(搜索: ACCN 组织)。
4. DDoS 高防确实很贵,但是比起游戏的研发、运营成本算是比较小的一部分,大部分游戏其实只要熬过上线那段时间后面会明朗许多(游戏赚钱那么这部分成本无所谓,数据不好可能就直接下掉了),所以该交的保护费还是得交,但是绝对不要把钱给黑客。
5. 各家云的防护产品一般分为两种, 机房原生防护和代理高防,原生防护的优点是对后端无感(透明接入),缺点是防护带宽有上限,一般在 200~300Gbps 不等 。代理高防理论上可以到 T 级防护,缺点是但是可能需要对后端进行一定的改造,而且会引入额外的延时,所以对实时性要求高的游戏影响较大。
6. 对于后端架构设计而言最好是假定将来的服务前面会根需要随时增加或去除一层转发,不管是负载均衡器、还是代理高防、还是 WAF ,这样可以备不时之需,而且可以做到相对较低成本的防护接入(防护挂载负载均衡上,再转发到后端, 这样来减少防护 IP 费用)
以上是一个运维的粗浅看法。
leveldb 有 cgo 的封装及原生实现,但是不知道可靠性与原生的 leveldb 相比如何。
xvfb + x11vnc 就可以实现了,单纯需要远程显示浏览器内容不一定要 DE
记得抓出来后的地址也是有时效性且 TTL 很短,很难做到一劳永逸。
tar -czvpf /full-backup.tar.gz --exclude=/full-backup.tar.gz --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/run /
/mnt/sysimage 应该不是你的原系统分区挂载点, livecd 是不会自动挂载磁盘的。
1. fdisk -l 找到原系统分区, 一般是 /dev/sda1, 或者(sda2, boot 独立)
2. e2fsck
纯推测,很久没用过 livecd 了。
OP 可以试试 Macs Fan Control, 把风扇的策略调激进一点( core average: 30~60 ),然后搭配一个铝合金折叠支架,这样也更利于散热。
Mac 默认的风扇策略可能是为了安静, 不到烫手他不怎么转,真是奇葩。
之前写过一个根据当前所连接 WIFI 自动切换网络区域的脚本, 你可以参考一下
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwojIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoKaW1wb3J0IHRpbWUKaW1wb3J0IHN1YnByb2Nlc3MgYXMgc3AKCmRldmljZSA9ICdlbjAnCmludGVydmFsID0gMgpuZXR3b3JrcyA9IHsKICAgICdTU0lEMSc6ICdMT0NBVElPTicsCiAgICAnU1NJRDInOiAnTE9DQVRJT04nLAp9CgoKZGVmIHNlbmRfbm90aWZ5KHRpdGxlLCBjb250ZW50KToKICAgIHNwLmNoZWNrX291dHB1dChbJ29zYXNjcmlwdCcsICctZScsICdkaXNwbGF5IG5vdGlmaWNhdGlvbiAie30iIHdpdGggdGl0bGUgInt9IicuZm9ybWF0KHRpdGxlLCBjb250ZW50KV0pCgoKZGVmIGdldF9zc2lkKCk6CiAgICBjbWQgPSBbJ25ldHdvcmtzZXR1cCcsICctZ2V0YWlycG9ydG5ldHdvcmsnLCBkZXZpY2VdCiAgICBvdXQgPSBzcC5jaGVja19vdXRwdXQoY21kKS5kZWNvZGUoKS5zdHJpcCgpCgogICAgaWYgbm90IG91dDoKICAgICAgICByZXR1cm4KCiAgICBmaWVsZHMgPSBvdXQuc3BsaXQoKQogICAgaWYgbGVuKGZpZWxkcykgPT0gNDoKICAgICAgICByZXR1cm4gZmllbGRzWy0xXQogICAgcmV0dXJuIE5vbmUKCgpkZWYgZ2V0X2xvY2F0aW9uKCk6CiAgICByZXR1cm4gc3AuY2hlY2tfb3V0cHV0KFsnbmV0d29ya3NldHVwJywgJy1nZXRjdXJyZW50bG9jYXRpb24nXSkuZGVjb2RlKCkuc3RyaXAoKQoKCmRlZiBzZXRfbG9jYXRpb24obG9jYXRpb24pOgogICAgIyBzZW5kX25vdGlmeSgn572R57uc5L2N572u5Y+R55Sf5Y+Y5YyWJywgJ+W9k+WJjeS9jee9rjoge30nLmZvcm1hdChsb2NhdGlvbikpCiAgICBzcC5jaGVja19vdXRwdXQoWyduZXR3b3Jrc2V0dXAnLCAnLXN3aXRjaHRvbG9jYXRpb24nLCBsb2NhdGlvbl0pCgoKZGVmIG1haW4oKToKICAgIHdoaWxlIDE6CiAgICAgICAgc3NpZCA9IGdldF9zc2lkKCkKICAgICAgICBsb2NhdGlvbiA9IG5ldHdvcmtzLmdldChzc2lkLCAnQXV0b21hdGljJykKICAgICAgICBpZiBnZXRfbG9jYXRpb24oKSAhPSBsb2NhdGlvbjoKICAgICAgICAgICAgc2V0X2xvY2F0aW9uKGxvY2F0aW9uKQogICAgICAgIHRpbWUuc2xlZXAoaW50ZXJ2YWwpCgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHRyeToKICAgICAgICBtYWluKCkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcGFzcwo=
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import subprocess as sp
device = 'en0'
interval = 2
networks = {
'SSID1': 'LOCATION',
'SSID2': 'LOCATION',
}
def send_notify(title, content):
sp.check_output(['osascript', '-e', 'display notification "{}" with title "{}"'.format(title, content)])
def get_ssid():
cmd = ['networksetup', '-getairportnetwork', device]
out = sp.check_output(cmd).decode().strip()
if not out:
return
fields = out.split()
if len(fields) == 4:
return fields[-1]
return None
def get_location():
return sp.check_output(['networksetup', '-getcurrentlocation']).decode().strip()
def set_location(location):
# send_notify('网络位置发生变化', '当前位置: {}'.format(location))
sp.check_output(['networksetup', '-switchtolocation', location])
def main():
while 1:
ssid = get_ssid()
location = networks.get(ssid, 'Automatic')
if get_location() != location:
set_location(location)
time.sleep(interval)
if __name__ == '__main__':
try:
main()
except Exception:
pass
直接把 futures return 回去
def func2():
----....
----returun exe.map(func1,range(10))
map $remote_addr $upstream {
192.168.1.100 "abc_test_server";
}
proxy_pass http://$upstream;