caddy安装

2019-02-13

cd /usr/local/bin

curl https://getcaddy.com | bash -s personal http.filter,http.ipfilter,http.nobots,http.ratelimit,http.realip

网上泄露的各种DB

2018-12-29

ed2k://|file|2010.06-江西移动全库-408万-access.7z|1329999527|5231E1EC5EE1123C6E694AD6399F9807|h=DORZC7XFNG63ZWX6C3RSN3Q7CWZXG5G4|/
ed2k://|file|2012.01-千脑-70万-csv.rar|34017079|A30DD3EF32C03C86E71032CDCA1C5EF9|h=2Z7TKJED7P2NJCKUCINNHMWLXV3KVVS4|/
ed2k://|file|2012.02-AcFun-15万-txt.rar|2241909|C2439FAB2BC7322273DE5D512A530A83|h=QJWQ3LWZ3UFJMPQHPD6WGXYYZHPRLQ43|/
ed2k://|file|2012.03-圆通数据库-mssql.rar|127496748|75F92807F541FB0EBB4773BA83D5157A|h=YAOCNQEUXCNBBTIM226NNZLJA7SMMSDS|/
ed2k://|file|2012.07-yahoo-45万-txt.bz2|6871089|8769EC2314C1AF2C98237DF58C7076D2|h=VSJ52KZ6O6JUZNZKXKT7F3LRXHBKJKMN|/
ed2k://|file|2012.08-小米论坛-828万-mysql.rar|518891223|87704FEA5B191C21F605A0C135BAF98E|h=6UQWS3OQ4VGUXLYW2L6H6TL2GKZOJAUA|/
ed2k://|file|2012.08-小米论坛-828万-txt.rar|361627120|2ED96D2F0E515321F67A31E84DC77B3C|h=UNNVFRMNWNP7UAIXZ6Y6AFCKOLBFJILW|/
ed2k://|file|2013.04-DNF-700万-mysql.zip|306178725|169CE4FA4D4F467BCB7F8297CE6EE032|h=C3KZ6C637ARBAPD5UNF2YMYMT5LTS2UK|/
ed2k://|file|2013.08-酒店开房记录-2000万-excel.rar|610164988|26F994CA1ABA72051ECE497F9AB7959A|h=EDLQDIHSRAJHB5SVNDQVMNPHOXVO3XB6|/
ed2k://|file|2013.08-酒店开房记录-2000万-mssql.bak|8030079488|6FCCDC6DE213DC72A4EFEE19AF2FC1AC|h=5YJSQJY46OYKYMQA5P4G3DUAQGATYDFI|/
ed2k://|file|2014.08-企业400号段数据-mssql.rar|46506453|4F44726413F3B9F9F701635FB498EAAB|h=LP47JMAJGOX233HQR2V3K673G7LE22RI|/
ed2k://|file|2014.08-台湾某财经电视台数据库-2014-txt.zip|53519|95160AAE4A9E3074BACB04C606C0748F|h=3KQJJ4ADWKNOGNJIZIICBXQ5SLPD62R5|/
ed2k://|file|2014.08-房产网-11万-sql.7z|6095432|D99DE175A27D179A5EB9F34D2D975FB0|h=2GN2RLDSDDVZ4POQZVIEJODQJVH2CJ4G|/
ed2k://|file|2014.09-mail.ru邮箱地址-466万-txt.7z|30715779|5247DC686608FD2317A31E8BA67899F4|h=DFVLYBFEQQLDZSXIEOWHWY2BMA5DKDBO|/
ed2k://|file|2014.09-yandex.ru-100万-txt.zip|16200283|80C4A344D51DBAE12F0A0D50202E9313|h=RA2KA6RRGELDAMXBAKXVFI3W7SIJ6TEE|/
ed2k://|file|2014.12-12306-13万-txt.7z|4470710|7B25F299C7862BFA855B63B04BB00E2A|h=VURCVAXE4UVFI2TOIEC6DIZUBSYELY76|/
ed2k://|file|2016.04-卡塔尔国家银行QNB-csv.zip|534384790|D7D81061307568AE47A3EE6C894D6C6C|h=VRQGQASTAHXFRGBZXAAIABVTFJRRIV7G|/
ed2k://|file|2016.04-土耳其公民数据mernis-5000万-sql.gz|1555520122|22B660CB494D89FC84198A6EEA66E3B6|h=HYBIW22P3G56CUB7RR34CJVD7RKO34BS|/
ed2k://|file|2011.03-多玩游戏网-800万-txt.rar|227441723|F8388A178222518978550D3E64B6129B|h=XMR2CYVQI3HOMKVRGUCCFGYZ3JVHKLCG|/
ed2k://|file|2011.03-当当网买家信息-101万-Excel.zip|7822098|1F66086AE57B74D69BF75A2EF7900B2E|h=VRWZME24KH7UTIF3HPTCO5V5KNTEHUAQ|/
ed2k://|file|2011.04-766游戏网-12万-sql.rar|5031951|BBE2D87564A2A8E4B083B57C697FD24E|h=DUFDLSY2A4F5SPZMMCN5JP7TE2HWA4EV|/
ed2k://|file|2011.04-IS语音-969万-txt.zip|177030850|B153DDF9FE16EFFF30C589664592F85A|h=HCB5NVNHVGVGKMDCS7HXHI4MNQASG5SY|/
ed2k://|file|2011.04-亚马逊中国买家信息-20万.zip|7570413|356D9E9C07D62243EF8A62745819E85C|h=BXLWB7OFKIFTCSCUU4Y47DHMX67GF7DO|/
ed2k://|file|2011.04-凡客诚品买家信息-20万-Excel.zip|7784030|AEC527EA7E816DBD75FF92B0C26BC480|h=VXC2RO23H23OCZISUXTEO62RTVHGQFPZ|/
ed2k://|file|2011.04-爱拍游戏网-1100万-txt.zip|267845795|87F9FFE887B0F53CAFD2A11205CB6C52|h=G6AQRSNJ7CHDTX5MTV6RYGB2OHYOAEXA|/
ed2k://|file|2011.05-木蚂蚁-13万-sql.zip|8598547|680F8999D4E27174553D1C11118DF978|h=5G2YZ7Z6RAQ5M5XUNCEFNX7ZYAITMZPZ|/
ed2k://|file|2011.07-土木在线-540万-sql.zip|645903048|4ED3B64224752DE3AB11B11D2FD9DA06|h=UL3F74NI266IR4IHI7UHDKMZRQMX3PFX|/
ed2k://|file|2011.10-178游戏网-1000万-txt.rar|108534783|FFCD04A52339701C8CB5197BDCF9F4DC|h=C2UYTR264YXVM6NSJNUV5R2PC5VZNAYU|/
ed2k://|file|2011.10-CSDN.NET-600万-sql.rar|109942505|A29D9468556CF73AFB48A3A8427629DC|h=VTPXT56G3BGRTHBROKQEWW6XAQTMYPLZ|/
ed2k://|file|2011.10-嘟嘟牛-66277-txt.rar|215666725|EF7187E33A8EBD9FD806343B7B1CAA82|h=Z5YU2Z6P6GUT5DUKQ6L4X5YFMZZNZ4YZ|/
ed2k://|file|2011.11-7k7k小游戏-2000万-txt.rar|203648704|6EB70910C1C193F5BE04610B503EF4A0|h=Y4ITT7C5Z5LOOREJPWXA25TM2NLKEEDX|/
ed2k://|file|2011.11-人人网-500万-txt.rar|51969611|8CD19B7A2EB9F1F74CB8BFBDE7BD144D|h=SDNOOZCYR6PXZIRZTZPEICNRNZ67BQJJ|/
ed2k://|file|2011.12-天涯社区-4000万-txt.rar|493480455|E4E0CFD85E2A783A3C3BD2539AA28FC3|h=4FB7J7QPRWRIPX7QWWTYVZCKMWDZ5VIQ|/
ed2k://|file|2011.12-淘宝买家卖家邮箱-2500万-txt.zip|135534861|F40C3C9F32F2C30B1A2484FAB3CB1257|h=GLUDUAAYPAALG3GPHD4EHT5OB6V6WBVB|/
ed2k://|file|2012.10-QQ精准客户名单-4500万-txt.rar|131416815|134F81AA90B27F55818E7A521D3CB35B|h=NRF2HAH2IXDT635UV6NDEGSA2HSOSSHZ|/
ed2k://|file|2012.06-LinkedIn-16737万-txt.rar|7503170474|A50C488915FC70E1DE644AA5F3432D6F|h=E2NEXLXOOA6PONPKUGVRVIMEU54EC6P4|/
ed2k://|file|2013.06-Myspace.com-36021万-txt.7z|12419587039|A1B14F88891885D636DE9F642A3E06DF|h=3QBXWEHRBUSUEWJOSHCF47B7HEC4Q5BM|/

arch提示:not authorized to perform operation解决办法

2018-12-21

vi /etc/polkit-1/rules.d/50-default.rules
#结尾添加
polkit.addRule(function(action, subject) {
​ if (action.id.indexOf(“org.freedesktop.udisks”) == 0) {
​ return polkit.Result.YES;
​ }
});

PS:
http://lgogua.blogspot.com/2014/11/how-to-mount-volume-errot-not.html

linux使用google-authenticator谷歌验证器进行用户登录验证

2018-11-29

一、安装
yum install google-authenticator

二、修改ssh相关配置
vi /etc/pam.d/sshd
认证模式一:验证密码和认证码,没有启用 Google Authenticator 服务的账号只验证密码(推荐)
#加在最上面一行,password-auth 与 pam_google_authenticator 的先后顺序决定了先输入密码还是先输入认证码。
auth substack password-auth
auth required pam_google_authenticator.so nullok
认证模式二:验证密码和认证码,没有启用 Google Authenticator 服务的账号无法使用密码登录
auth substack password-auth
auth required pam_google_authenticator.so
认证模式三:只验证认证码,不验证密码,没有启用 Google Authenticator 服务的账号不用输入密码直接可以成功登录
#auth substack password-auth
auth required pam_google_authenticator.so nullok
认证模式四:只验证认证码,不验证密码,没有启用 Google Authenticator 服务的账号无法使用密码登录
#auth substack password-auth
auth required pam_google_authenticator.so

vi /etc/ssh/sshd_config
# Change to no to disable s/key passwords
ChallengeResponseAuthentication yes

三、启用谷歌身份验证器:切换至想要使用谷歌身份验证器来做登录验证的账号,执行:
google-authenticator

—————–
也可用通过参数一次性设置(推荐)
google-authenticator -t -f -d -r 3 -R 30 -W

四、重启sshd服务
systemctl restart sshd.service

申请Let’s Encrypt免费通配符SSL域名证书

2018-11-26

一、下载 Certbot 客户端
wget https://dl.eff.org/certbot-auto
或者yum install epel; yum install python2-certbot-nginx

二、设为可执行权限
chmod a+x certbot-auto
./certbot-auto certonly -d “*.xxx.com” –manual –preferred-challenges dns-01 –server https://acme-v02.api.letsencrypt.org/directory

三、申请通配符证书是要经过 DNS 认证的,接下来需要按照提示在域名后台添加对应的 DNS TXT 记录。
dig -t txt _acme-challenge.xxx.com @8.8.8.8
等待txt记录生效,可以显示出来解析的时候,回车。提示如下:
MPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/xxx.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/xxx.com/privkey.pem
Your cert will expire on 2018-06-12. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
“certbot-auto renew”
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

四、查看生成的证书
tree /etc/letsencrypt/live/xxx.com/
.
├── cert.pem (服务器端证书)
├── chain.pem (根证书和中继证书)
├── fullchain.pem (Nginx所需要ssl_certificate文件)
└── privkey.pem (安全证书KEY文件)

五、验证范域名证书
openssl x509 -in /etc/letsencrypt/live/xxx.com/cert.pem -noout -text
# 可以看到证书包含了 SAN 扩展,该扩展的值就是 *.xxx.com

Authority Information Access:
OCSP – URI:http://ocsp.int-x3.letsencrypt.org
CA Issuers – URI:http://cert.int-x3.letsencrypt.org/

X509v3 Subject Alternative Name:
DNS:*.xxx.com

六、证书续期
手动:
certbot-auto renew

用计划任务自动化比较好:每天0点和中午12点自动续期。
0 0,12 * * * python -c ‘import random; import time; time.sleep(random.random() * 3600)’ && ./path/certbot-auto renew

七、NGINX使用SSL证书:
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # 不加本条也不耽误使用。
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 不加本条也不耽误使用。

PS:https://certbot.eff.org/docs/using.html
1、申请通配符证书,只能使用 dns-01 的方式。
2、certonly 表示插件,Certbot 有很多插件。不同的插件都可以申请证书,用户可以根据需要自行选择。
3、-d 为哪些主机申请证书。如果是通配符,输入 *.xxx.com (根据实际情况替换为你自己的域名)。
4、–preferred-challenges dns-01,使用 DNS 方式校验域名所有权。
5、–server,Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本,需要显示指定。
6、dns-01:给域名添加一个 DNS TXT 记录。
7、http-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
8、tls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。
9、在配置Let’s Encrypt免费SSL证书的时候域名一定要解析到当前VPS服务器,而且DNS必须用到海外域名DNS,如果用国内免费DNS可能会导致获取不到错误。
10、–dry-run Test “renew” or “certonly” without saving any certificates to disk

V2Ray服务器搭建

2018-10-11

一、下载 V2Ray
1、github.com/v2ray/v2ray-core
2、v2ray.com/download
3、github.com/v2ray/homebrew-v2ray
4、packages/community/x86_64/v2ray/
5、snapcraft.io/v2ray-core
6、Windows 客户端:
V2RayW https://github.com/Cenmrev/V2RayW
V2RayN https://github.com/2dust/v2rayN
V2RayS https://github.com/Shinlor/V2RayS
V2RayGCon https://github.com/nobody3u/V2RayGCon

二、Linux 安装脚本,更新 V2Ray 的方法是再次执行安装脚本!
简化版:
bash <(curl -L -s https://install.direct/go.sh)
复杂版:
1、下载脚本
wget https://install.direct/go.sh
2、执行脚本安装 V2Ray
sudo bash go.sh
3、修改配置文件
vi /etc/v2ray/config.json
4、启动 V2Ray
sudo systemctl start v2ray
5、停止运行 V2Ray
sudo systemctl stop v2ray
6、重启 V2Ray
sudo systemctl restart v2ray

安装目录说明:
1、/usr/bin/v2ray/v2ray:V2Ray 程序;
2、/usr/bin/v2ray/v2ctl:V2Ray 工具;
3、/etc/v2ray/config.json:配置文件;
4、/usr/bin/v2ray/geoip.dat:IP 数据文件
5、/usr/bin/v2ray/geosite.dat:域名数据文件
运行脚本位于系统的以下位置:
1、/etc/systemd/system/v2ray.service: Systemd
2、/etc/init.d/v2ray: SysV

三、脚本运行完成后:
1、编辑 /etc/v2ray/config.json 文件来配置代理方式;
2、运行 service v2ray start 来启动 V2Ray 进程;
3、之后可以使用 service v2ray start|stop|status|reload|restart|force-reload 控制 V2Ray 的运行。

四、手动安装:
go.sh 支持如下参数,可在手动安装时根据实际情况调整:
-p 或 –proxy: 使用代理服务器来下载 V2Ray 的文件,格式与 curl 接受的参数一致,比如 "socks5://127.0.0.1:1080" 或 "http://127.0.0.1:3128"。
-f 或 –force: 强制安装。在默认情况下,如果当前系统中已有最新版本的 V2Ray,go.sh 会在检测之后就退出。如果需要强制重装一遍,则需要指定该参数。
–version: 指定需要安装的版本,比如 "v1.13"。默认值为最新版本。
–local: 使用一个本地文件进行安装。如果你已经下载了某个版本的 V2Ray,则可通过这个参数指定一个文件路径来进行安装。
示例:
使用地址为 127.0.0.1:1080 的 SOCKS 代理下载并安装最新版本:./go.sh -p socks5://127.0.0.1:1080
安装本地的 v1.13 版本:./go.sh –version v1.13 –local /path/to/v2ray.zip

五、Docker部署
1、安装 Docker
sudo apt-get install -y docker
2、拉取DockerHub里的镜像
sudo docker pull v2ray/official
3、容器部署(把你的配置写好后命名为 config.json 放入 /etc/v2ray 文件夹内)
mkdir -p /etc/v2ray
sudo docker run -d –name v2ray -v /etc/v2ray:/etc/v2ray -p 8888:8888 v2ray/official v2ray -config=/etc/v2ray/config.json
4、查看容器的运行状态
sudo docker container ls
5、启动 V2Ray
sudo docker container start v2ray
6、停止 V2Ray
sudo docker container stop v2ray
7、重启 V2Ray
sudo docker container restart v2ray
8、查看日志:
sudo docker container logs v2ray
9、更新 V2Ray 的 Docker 镜像:
docker pull v2ray/official
10、更新配置后,需要重新部署容器,命令如下:
sudo docker container stop v2ray
sudo docker container rm v2ray
sudo docker run -d –name v2ray -v /etc/v2ray:/etc/v2ray -p 8888:8888 v2ray/official v2ray -config=/etc/v2ray/config.json
11、如果 V2Ray 用的传输层协议是 mKCP,由于 mKCP 基于 UDP,那么需要指定映射的端口是 UDP:
-p 9999:9999/udp
12、V2Ray 提供了两个预编译的 Docker image:
v2ray/official: 包含最新发布的版本,每周跟随新版本更新;
v2ray/dev: 包含由最新的代码编译而成的程序文件,随代码库更新。
13、两个 image 的文件结构相同:
/etc/v2ray/config.json: 配置文件
/usr/bin/v2ray/v2ray: V2Ray 主程序
/usr/bin/v2ray/v2ctl: V2Ray 辅助工具
/usr/bin/v2ray/geoip.dat: IP 数据文件
/usr/bin/v2ray/geosite:dat: 域名数据文件

六、服务器端配置文件说明:VMess 协议的认证基于时间,一定要保证服务器和客户端的系统时间相差要在一分钟以内。修改完成后要重启 V2Ray 才会使修改的配置生效。
{
"inbound": {
"port": 10086, // 服务器监听端口
"protocol": "vmess", // 主传入协议
"settings": {
"clients": [
{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811" // 用户 ID,客户端与服务器必须相同
"alterId": 64 //这个参数主要是为了加强防探测能力。理论上 alterId 越大越好,但越大就约占内存(只针对服务器,客户端不占内存)。alterId 的值设为 30 到 100 之间应该是比较合适的。alterId 的大小要保证客户端的小于等于服务器的。
}]
}
},
"outbound": {
"protocol": "freedom", // 主传出协议
"settings": {}
}
}

服务器的配置中需要确保 id 和端口与客户端一致,就可以正常连接了。

七、运行
在 Windows 和 macOS 中,配置文件通常是 V2Ray 同目录下的 config.json 文件。直接运行 v2ray 或 v2ray.exe 即可。
在 Linux 中,配置文件通常位于 /etc/v2ray/config.json 文件。运行 v2ray –config=/etc/v2ray/config.json,或使用 systemd 等工具把 V2Ray 作为服务在后台运行。

八、客户端

在你的 PC (或手机)中,你需要运行 V2Ray 并使用下面的配置:修改完成后要重启 V2Ray 才会使修改的配置生效。

{
"inbound": {
"port": 1080, // SOCKS 代理端口,在浏览器中需配置代理并指向这个端口
"listen": "127.0.0.1",
"protocol": "socks", // 入口协议为 SOCKS 5
"domainOverride": ["tls","http"], //从网络流量中识别出域名。这个 domainOverride 有两个用处:1. 解决 DNS 污染;2. 对于 IP 流量可以应用域名路由规则
"settings": {
"udp": true
"auth": "noauth" //socks的认证设置,noauth 代表不认证,由于 socks 通常在客户端使用,所以这里不认证
}
},
"outbound": {
"protocol": "vmess", // 出口协议
"settings": {
"vnext": [{
"address": "server", // 服务器地址,请修改为你自己的服务器 ip 或域名
"port": 10086, // 服务器端口
"users": [
{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811" // 用户 ID,必须与服务器端配置相同
"alterId": 64 // 此处的值也应当与服务器相同
}]
}]
}
},
"outboundDetour": [{
"protocol": "freedom",
"tag": "direct",
"settings": {}
}],
"routing": {
"strategy": "rules",
"settings": {
"domainStrategy": "IPOnDemand",
"rules": [{
"type": "field",
"ip": [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"::1/128",
"fc00::/7",
"fe80::/10"
],
"outboundTag": "direct"
}]
}
}
}

上述配置唯一要改的地方就是你的服务器 IP,配置中已注明。上述配置会把除了局域网(比如访问路由器)之外的所有流量转发到你的服务器。

TIPS:
1、检查配置文件的语法是否正确:
$ jq . config.json
这里的 config.json 是当前目录下的 config.json。特别注意命令中的点 . 不能省去。
推荐使用 V2Ray 提供的配置检查功能(test 选项)
$ /usr/bin/v2ray/v2ray -test -config /etc/v2ray/config.json

2、数据包的流向:
{浏览器} {V2Ray 客户端 inbound V2Ray 客户端 outbound} {V2Ray 服务器 inbound V2Ray 服务器 outbound} {目标网站}

3、打开客户端闪退
可能原因:客户端的配置文件上不正确。
修正方法:请仔细检查配置文件并修改正确。

4、客户端提示 Socks: unknown Socks version:
可能原因:客户端配置的 inboud 设置成了 socks 而浏览器的代理协议设置为 http。
修正方法:修改配置文件使客户端的 inboud 的 protocol 和浏览器代理设置的协议保持一致。

5、客户端提示 Proxy|HTTP: failed to read http request > malformed HTTP request “\x05\x01\x00”
可能原因:客户端配置的 inboud 设置成了 https 而浏览器的代理协议设置为 socks4 或者 socks5。
修正方法:修改配置文件使客户端的 inboud 的 protocol 和浏览器代理设置的协议保持一致。

6、服务器执行 systemctl status v2ray 输出提示 Main: failed to read config file…
可能原因:服务器的配置文件不正确。
修正方法:请仔细检查配置文件并修改正确。

7、执行 cat /var/log/v2ray/error.log 或者 systemctl status v2ray 出现 rejected Proxy|VMess|Encoding: invalid user
可能原因:服务器与客户端的系统时间或者 id 不一致或者 alterId 不一致。
修正方法:请校准系统时间或将 id 以及 alterId 修改一致。

PS:
https://v2ray.com/chapter_00/install.html
https://v2ray.com/chapter_02/protocols/vmess.html
https://v2ray.com/download/
https://v2ray.com/ui_client/
https://toutyrater.github.io/prep/install.html
https://toutyrater.github.io/basic/Shadowsocks.html
https://toutyrater.github.io/basic/log.html
https://toutyrater.github.io/advanced/dynamicport.html
https://toutyrater.github.io/app/balance.html
https://toutyrater.github.io/app/docker-deploy-v2ray.html
https://toutyrater.github.io/routing/bittorrent.html

MySQL定期自动备份

2018-09-05

* 6 * * * mysql /home/mysql/autobackup.sh &> /dev/null

#!/bin/bash
echo -e [`date +”%Y-%m-%d %H:%M:%S”`] start
#system time
time=`date +”%y-%m-%d”`
#host IP
host=”1.2.3.4″
#database backup user
user=”root”
#database password
passwd=”passwd”
#Create a backup directory
mkdir -p /home/mysql/backup/”$time”
#list database name
all_database=`/usr/bin/mysql -u$user -p$passwd -Bse ‘show databases’`
#in the table from the database backup
for i in $all_database
do
/usr/bin/mysqldump -u$user -p$passwd $i > /home/mysql/backup/”$time”/”$i”_”$time”.sql
done
echo -e [`date +”%Y-%m-%d %H:%M:%S”`] end
exit 0

编译安装virtio驱动

2018-09-03

1、检查服务器内核是否支持virtio驱动
grep -i virtio /boot/config-$(uname -r)
如果在输出信息中没有找到 VIRTIO_BLK 及 VIRTIO_NET 的信息,表示该操作系统没有安装 virtio 相关驱动;
如果参数 CONFIG_VIRTIO_BLK 及 CONFIG_VIRTIO_NET 取值为 y,表示包含了 virtio 驱动;
如果参数CONFIG_VIRTIO_BLK及CONFIG_VIRTIO_NET取值为m,需要进入第2步。

2、确认virtio驱动是否包含在内存文件系统initramfs或者initrd中
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
确认initramfs已经包含了virtio_blk驱动,以及其所依赖的virtio.ko、virtio_pci.ko和virtio_ring.ko,如果initramfs没有包含virtio驱动,则需要修复内存文件系统。

3、修复内存文件系统
通过检查,发现源服务器内核支持virtio驱动,但是临时文件系统initramfs或者initrd中没有包含virtio驱动时,需要修复内存文件系统

CentOS/RedHat 5

mkinitrd -f –allow-missing \
–with=xen-vbd –preload=xen-vbd \
–with=xen-platform-pci –preload=xen-platform-pci \
–with=virtio_blk –preload=virtio_blk \
–with=virtio_pci –preload=virtio_pci \
–with=virtio_console –preload=virtio_console \

CentOS/RedHat 6/7

mkinitrd -f –allow-missing \
–with=xen-blkfront –preload=xen-blkfront \
–with=virtio_blk –preload=virtio_blk \
–with=virtio_pci –preload=virtio_pci \
–with=virtio_console –preload=virtio_console \
/boot/initramfs-$(uname -r).img $(uname -r)

Debian/Ubuntu

echo -e ‘xen-blkfront\nvirtio_blk\nvirtio_pci\nvirtio_console’ >> \
/etc/initramfs-tools/modules
mkinitramfs -o /boot/initrd.img-$(uname -r)”

=====================
下载内核安装包
yum install -y ncurses-devel gcc make wget

根据当前系统使用的内核版本下载对应的内核版本源码
uname -r
https://www.kernel.org/pub/linux/kernel

cd /usr/src/
wget https://www.kernel.org/pub/linux/kernel/v”$(uname -r)”/linux-“$(uname -r)”.tar.gz
tar -xzf linux-“$(uname -r)”.tar.gz
ln -s linux-“$(uname -r)” linux
cd /usr/src/linux

编译内核

依次运行以下命令编译内核(选*配置表示编译到内核,选m配置表示编译为模块)
make mrproper
symvers_path=$(find /usr/src/ -name “Module.symvers”)
test -f $symvers_path && cp $symvers_path .
cp /boot/config-$(uname -r) ./.config
make menuconfig

a、使用空格勾选Virtualization项
确认是否勾选了KVM(Kernel-based Virtual Machine)选项
Processor type and features —>
[*] Paravirtualized guest support —>
— Paravirtualized guest support
(128) Maximum allowed size of a domain in gigabytes
[*] KVM paravirtualized clock
[*] KVM Guest support

Device Drivers —>
[*] Block devices —>
Virtio block driver (EXPERIMENTAL)
-*- Network device support —>
Virtio network driver (EXPERIMENTAL)

b、按下Esc键退出内核配置界面并根据弹窗提示保存.config文件
c、检查virtio相关配置是否已经正确配置
d、若检查后发现暂未设置virtio相关配置,运行以下命令手动编辑.config文件
make oldconfig
make prepare
make scripts
make
make install

e、运行以下命令查看virtio驱动的安装情况
find /lib/modules/”$(uname -r)”/ -name “virtio.*” | grep -E “virtio.*”
grep -E “virtio.*” < /lib/modules/"$(uname -r)"/modules.builtin
若输出virtio_blk、virtio_pci.virtio_console等文件列表,表明您已经正确安装了virtio驱动。

PS:https://wiki.gentoo.org/wiki/Initramfs/Guide/zh-cn
https://help.aliyun.com/document_detail/62423.html

vmware热添加SCSI新硬盘或者扩展已有SCSI硬盘空间后,LINUX不重启无法认出新硬盘或新空间的解决办法

2018-08-30

for i in `find /sys -iname scan`;do echo “- – -” >$i;done

==================
for i in $(echo `find /sys/class/scsi_host -name “host*”`); do echo “- – -” > ${i}/scan; done

and for FC
for i in $(echo `find /sys/class/fc_host -name “host*”`); do echo “1” > ${i}/issue_lip/; done

Sending “- – -” to /sys/class/scsi_host/host[012]/scan is telling the SCSI host adapter to look for new disks on every channel “(-)”, every target “(-)”, and every lun “(-)”. – this is the right thing to do if you add a new disk to the system while it’s powered on.

Sending a “1” to /sys/class/block/sdb/device/rescan is telling the SCSI block device to refresh it’s information about where it’s ending boundary is (among other things) to give the kernel information about it’s updated size. – this is the right thing to do if you change the size of an existing disk while it’s powered on.

# 仅对扩展空间有效,新添加SCSI硬盘无效。
for i in $(echo `ls /sys/class/scsi_device`); do echo “1” > ${i}/device/rescan; done

===================
不重启linux同步磁盘分区信息到内核
partx -va /dev/sda
partx -va /dev/sda3 /dev/sda
# 查看新分区的信息是否同步到内核
cat /proc/partitions

Archlinux安装

2018-08-17

一、验证启动模式
ls /sys/firmware/efi/efivars
如果目录不存在,系统可能以 BIOS 或 CSM 模式启动

二、更新系统时间
timedatectl set-ntp true
用 timedatectl status 检查服务状态

三、建立硬盘分区
# 查看块设备(lsblk也行)
fdisk -l
# cfdisk是一个简单好用的终端模拟图形化的分区工具
cfdisk /dev/sda

# EFI-GPT模式
gdisk /dev/sda
/dev/sda1 EF00 EFI System
/dev/sda2 8200 Linux swap
/dev/sda3 8E00 Linux LVM

# BIOS-MBR模式
parted /dev/sda
# 创建 MBR/msdos 分区表
mklabel msdos
# 创建一个主要分区大小为 510M
mkpart primary ext4 2m 512m
# 设置 boot 为启动分区
set 1 boot on
# 创建一个交换分区,大小1G
mkpart primary linux-swap 512m 1536g
# 创建一个主要分区,大小为其余所有剩余空间
mkpart primary ext4 1536g 100%

四、格式化分区
mkfs.vfat /dev/sda1
mkfs.ext4 /dev/sda3
# 格式化为 swap
mkswap /dev/sda2
# 启用 swap
swapon /dev/sda2

五、挂载分区
mount /dev/sda3 /mnt
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot

六、选择镜像
vi /etc/pacman.d/mirrorlist
# 安装基础系统
pacstrap /mnt base

七、配置系统
# 自动生成 fstab(用 -U 或 -L 选项设置UUID 或卷标)
genfstab -L /mnt > /mnt/etc/fstab
# 检查一下生成的 /mnt/etc/fstab 文件是否正确
cat /mnt/etc/fstab

# Change root 到新安装的系统
arch-chroot /mnt

# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 运行hwclock以生成/etc/adjtime
hwclock –systohc

# Locale本地化的程序与库若要本地化文本
vi /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
# 执行locale-gen以生成locale讯息
locale-gen
# 创建 locale.conf 并编辑:LANG 变量(将系统 locale 设置为en_US.UTF-8,系统的 Log 就会用英文显示,这样更容易问题的判断和处理。)
vi /etc/locale.conf
LANG=en_US.UTF-8
# 主机名
vi /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
# 生成初始ramdisk环境Initramfs
mkinitcpio -p linux
# Root 密码
passwd

# 安装引导程序
在BIOS-MBR模式下:
# 安装grub(软件包 os-prober 并 挂载 包含其它系统的磁盘,grub-mkconfig 会自动搜索已经安装的其它系统并添加到启动菜单)
pacman -S grub os-prober
# 部署grub:(–target=i386-pc指示grub-install是为使用BIOS的系统安装. 推荐一直标明这点以防混淆)
grub-install –target=i386-pc /dev/sdx (/dev/sdx 是已经完成分区的磁盘,grub 将安装到它上面)
# 生成配置
grub-mkconfig -o /boot/grub/grub.cfg

在UEFI-GPT模式下:(efibootmgr引导菜单,不装也行)
# 安装grub与efibootmgr两个包(”GRUB”是引导程序, efibootmgr 创建 GRUB 安装脚本使用的 .efi 启动项。)
pacman -S grub efibootmgr
# 部署grub
grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=grub
# 生成配置文件
grub-mkconfig -o /boot/grub/grub.cfg

PS:warning failed to connect to lvmetad,falling back to device scanning.可以忽略此错误

八、安装软件
# 如果使用无线网络的话,要安装这几个包,否则重启之后无法连接无线网络
pacman -S iw wpa_supplicant dialog wireless_tools

# 输入法
pacman -S fcitx fcitx-im fcitx-googlepinyin fcitx-configtool
vi /etc/profile
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export [email protected]=fcitx

# 安装x,xserver
pacman -Syu xorg xorg-server xorg-xinit xorg-utils xorg-server-utils dbus

# 安装gnome
Intel集成显卡驱动:#选装 集显驱动已被集成在安装包中
pacman -S xf86-video-intel
安装显卡驱动:
pacman -S xf86-video-vesa
xorg服务:
pacman -S xorg-server xorg-xinit xorg-twm xterm
gnome:
pacman -S gnome gnome-extra gnome-tweak-tool gnome-packagekit gnome-settings-daemon-updates
lib256选择1 根据自己选择配置 我这里选择的1
gnome 的窗口管理器#已默认安装好,如果没有再手动安装下:
pacman -S gdm
systemctl enable gdm
cp /etc/X11/xinit/xinitrc ~/.xinitrc
# 安装dm登录管理器
sudo pacman -Syu gdm
systemctl enable gdm

# 字体
pacman -Ss font
pacman -S ttf-dejavu wqy-microhei wqy-zenhei adobe-source-han-sans-cn-fonts

# 浏览器
pacman -S firefox
pacman -S chromium

# 安装Intel-ucode(非IntelCPU可以跳过此步骤)
pacman -S intel-ucode

# 安装Xfce
sudo pacman -S xfce4 xfce4-goodies sddm

# 图形化网络配置
pacman -S network-manager-applet
systemctl disable netctl
systemctl enable NetworkManager

# 创建一个名为 teaker 的用户,指定登录 shell 为 bash,所属主用户组 users,并在 /home 下创建同名用户文件夹
useradd -m -g users -G wheel -s /bin/bash teaker
passwd teaker