C#常用的正则表达式

基本符号

^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ 表示匹配字符串的结束位置

*表示匹配 零次到多次

+表示匹配 一次到多次 (至少有一次)
? 表示匹配零次或一次
. 表示匹配单个字符
| 表示为或者,两项中取一项
( ) 小括号表示匹配括号中全部字符
[ ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]
{ } 大括号用于限定匹配次数 如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符 {n,m}表示至少n,最多m
\ 转义字符 如上基本符号匹配都需要转义字符 如 * 表示匹配*号
\w 表示英文字母和数字 \W 非字母和数字
\d 表示数字 \D 非数字

常用的正则表达式

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.)>.<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s)|(\s$)

匹配IP地址的正则表达式:/(\d+).(\d+).(\d+).(\d+)/g //

匹配Email地址的正则表达式:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*

匹配网址URL的正则表达式:http://(/[\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?

sql语句:^(select|drop|delete|create|update|insert).*$

1、非负整数:^\d+$

2、正整数:^[0-9][1-9][0-9]$

3、非正整数:^((-\d+)|(0+))$

4、负整数:^-[0-9][1-9][0-9]$

5、整数:^-?\d+$

6、非负浮点数:^\d+(.\d+)?$

7、正浮点数:^((0-9)+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$

8、非正浮点数:^((-\d+.\d+)?)|(0+(.0+)?))$

9、负浮点数:^(-((正浮点数正则式)))$

10、英文字符串:^[A-Za-z]+$

11、英文大写串:^[A-Z]+$

12、英文小写串:^[a-z]+$

13、英文字符数字串:^[A-Za-z0-9]+$

14、英数字加下划线串:^\w+$

15、E-mail地址:^[\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+$

16、URL:^[a-zA-Z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\s)?$
或:^http:\/\/[A-Za-z0-9]+.[A-Za-z0-9]+[\/=\?%-&_~`@[]\’:+!]([^<>\”\”])$

17、邮政编码:^[1-9]\d{5}$

18、中文:^[\u0391-\uFFE5]+$

19、电话号码:^((\d2,3)|(\d{3}-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(-\d{1,4})?$

20、手机号码:^((\d2,3)|(\d{3}-))?13\d{9}$

21、双字节字符(包括汉字在内):^\x00-\xff

22、匹配首尾空格:(^\s)|(\s$)(像vbscript那样的trim函数)

23、匹配HTML标记:<(.)>.<\/\1>|<(.*) \/>

24、匹配空行:\n[\s| ]*\r

25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *(‘|”)?(\w|\|\/|.)+(‘|”| *|>)?

26、提取信息中的邮件地址:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*

27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *(‘|”)?(\w|\|\/|.)+(‘|”| *|>)?

28、提取信息中的IP地址:(\d+).(\d+).(\d+).(\d+)

29、提取信息中的中国手机号码:(86)013\d{9}

30、提取信息中的中国固定电话号码:(\d3,4|\d{3,4}-|\s)?\d{8}

31、提取信息中的中国电话号码(包括移动和固定电话):(\d3,4|\d{3,4}-|\s)?\d{7,14}

32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}

33、提取信息中的浮点数(即小数):(-?\d*).?\d+

34、提取信息中的任何数字 :(-?\d*)(.\d+)?

35、IP:(\d+).(\d+).(\d+).(\d+)

36、电话区号:/^0\d{2,3}$/

37、腾讯QQ号:^[1-9][1-9][0-9]$

38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

39、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$

cloudflare防火墙规则

1、Allow:Good Bot & Whitelist

(cf.client.bot) or (ip.src in {132.x.x.x 43.x.x.x}) or (http.user_agent contains "YisouSpider") or (http.request.uri.path contains "/.well-known/acme-challenge")

要把自己本机服务器IP加到白名单,否则类似于wordpress定时任务(证书续签等)也有可能被下面规则2中的IDC黑名单给block掉。

2022.5.7 update:该条规则会把类似于Semrush、AhrefsBot这种在cloudflare白名单的robots给放行了,因为规则1优先级最高,所以即使在后面的规则中屏蔽了他们,他们还是会allow,所以最好是再通过robots.txt屏蔽这种白名单中的robots。Cloudflare Verified Bots列表:https://radar.cloudflare.com/verified-bots

2022.7.30 update:将路径/.well-known/acme-challenge加入白名单,否则Let’s Encrypt证书续期验证会被拦截。

2、JS Challenge:IDC ASN

(ip.geoip.asnum in {174 195 209 577 792 793 794 1215 1216 1217 2497 2914 3223 3255 3269 3326 3329 3457 3598 4184 4190 4637 4694 4755 4785 4788 4816 4826 4835 5056 5610 5617 6471 6584 6830 6876 6877 6939 7029 7224 7303 7489 7552 7684 8068 8069 8070 8071 8074 8075 8100 8220 8560 8881 8987 9009 9299 9312 9370 9678 9952 9984 10026 10453 11351 11426 11691 12076 12271 12334 12367 12874 12876 12989 14061 14117 14140 14576 14618 15169 16276 16509 16591 16629 17043 17428 17707 17788 17789 17790 17791 18013 18228 18403 18450 18599 18734 18978 19527 19740 20207 20473 20552 20554 20860 21704 21769 21859 21887 22773 22884 23468 23724 23885 23959 23969 24088 24192 24424 24429 24940 25429 25697 25820 25935 25961 26160 26496 26818 27715 28429 28431 28438 28725 29066 29286 29287 29802 30083 30823 31122 31235 31400 31898 32097 32098 32505 32613 34081 34248 34549 34947 35070 35212 35320 35540 35593 35804 35816 35908 35916 36351 36352 36384 36385 36444 36492 36806 37963 37969 38001 38197 38283 38365 38538 38587 38588 38627 39284 40065 40676 40788 41009 41096 41264 41378 42652 42905 43289 43624 43989 45011 45012 45062 45076 45085 45090 45102 45102 45102 45103 45104 45139 45458 45566 45576 45629 45753 45899 45932 46484 46844 47232 47285 47927 48024 48024 48337 48905 49327 49588 49981 50297 50340 50837 51852 52000 52228 52341 53089 54463 54538 54574 54600 54854 54994 55158 55330 55720 55799 55924 55933 55960 55967 55990 55992 56005 56011 56109 56222 57613 58073 58199 58461 58466 58519 58543 58563 58593 58772 58773 58774 58775 58776 58844 58854 58862 58879 59019 59028 59048 59050 59051 59052 59053 59054 59055 59067 59077 59374 60068 60592 60631 60798 61154 61317 61348 61577 61853 62044 62240 62468 62785 62904 63018 63023 63075 63288 63314 63545 63612 63620 63631 63655 63677 63678 63679 63727 63728 63729 63835 63838 63888 63916 63949 64050 131090 131106 131138 131139 131140 131141 131293 131428 131444 131477 131486 131495 132196 132203 132509 132510 132513 132591 132839 133024 133199 133380 133478 133492 133746 133752 133774 133775 133776 133905 133929 134238 134327 134760 134761 134763 134764 134769 134770 134771 134835 134963 135061 135290 135300 135330 135377 135629 137693 137697 137699 137753 137784 137785 137787 137788 137876 137969 138366 138407 138607 138915 138949 138950 138952 138982 138994 139007 139018 139124 139144 139201 139203 139220 139316 139327 139726 139887 140096 140596 140701 140716 140717 140720 140723 140979 141157 141180 142570 149167 177453 177549 197099 197540 198047 198651 199490 199506 199524 199883 200756 201094 201978 202053 202675 203087 204601 204720 206092 206204 206791 206798 207319 207400 207590 208425 208556 211914 212708 213251 213375 262187 263022 263196 263639 263693 264344 264509 265443 265537 266706 267784 269939 270110 328608 394699 395003 395936 395954 395973 398101 63951 45050 209366 40021 47583 46606 211252 51167 202054 35913 35425 33182 141004 135917 141995 21499 34989 24806 48282 58061 46475})

3、Managed Challenge:Bad Crawler

(http.user_agent contains "80legs") or (http.user_agent contains "Abonti") or (http.user_agent contains "admantx") or (http.user_agent contains "aipbot") or (http.user_agent contains "AllSubmitter") or (http.user_agent contains "Backlink") or (http.user_agent contains "backlink") or (http.user_agent contains "Badass") or (http.user_agent contains "Bigfoot") or (http.user_agent contains "blexbot") or (http.user_agent contains "Buddy") or (http.user_agent contains "CherryPicker") or (http.user_agent contains "cloudsystemnetwork") or (http.user_agent contains "cognitiveseo") or (http.user_agent contains "Collector") or (http.user_agent contains "cosmos") or (http.user_agent contains "CrazyWebCrawler") or (http.user_agent contains "Crescent") or (http.user_agent contains "Devil") or (http.user_agent contains "domain" and http.user_agent contains "spider") or (http.user_agent contains "domain" and http.user_agent contains "stat") or (http.user_agent contains "domain" and http.user_agent contains "Appender") or (http.user_agent contains "domain" and http.user_agent contains "Crawler") or (http.user_agent contains "DittoSpyder") or (http.user_agent contains "Konqueror") or (http.user_agent contains "Easou") or (http.user_agent contains "Yisou") or (http.user_agent contains "Etao") or (http.user_agent contains "mail" and http.user_agent contains "olf") or (http.user_agent contains "mail" and http.user_agent contains "spider") or (http.user_agent contains "exabot.com") or (http.user_agent contains "getintent") or (http.user_agent contains "Grabber") or (http.user_agent contains "GrabNet") or (http.user_agent contains "HEADMasterSEO") or (http.user_agent contains "heritrix") or (http.user_agent contains "htmlparser") or (http.user_agent contains "hubspot") or (http.user_agent contains "Jyxobot") or (http.user_agent contains "kraken") or (http.user_agent contains "larbin") or (http.user_agent contains "ltx71") or (http.user_agent contains "leiki") or (http.user_agent contains "LinkScan") or (http.user_agent contains "Magnet") or (http.user_agent contains "Mag-Net") or (http.user_agent contains "Mechanize") or (http.user_agent contains "MegaIndex") or (http.user_agent contains "Metasearch") or (http.user_agent contains "MJ12bot") or (http.user_agent contains "moz.com") or (http.user_agent contains "Navroad") or (http.user_agent contains "Netcraft") or (http.user_agent contains "niki-bot") or (http.user_agent contains "NimbleCrawler") or (http.user_agent contains "Nimbostratus") or (http.user_agent contains "Ninja") or (http.user_agent contains "Openfind") or (http.user_agent contains "Page" and http.user_agent contains "Analyzer") or (http.user_agent contains "Pixray") or (http.user_agent contains "probethenet") or (http.user_agent contains "proximic") or (http.user_agent contains "psbot") or (http.user_agent contains "RankActive") or (http.user_agent contains "RankingBot") or (http.user_agent contains "RankurBot") or (http.user_agent contains "Reaper") or (http.user_agent contains "SalesIntelligent") or (http.user_agent contains "Semrush") or (http.user_agent contains "SEOkicks") or (http.user_agent contains "spbot") or (http.user_agent contains "SEOstats") or (http.user_agent contains "Snapbot") or (http.user_agent contains "Stripper") or (http.user_agent contains "Siteimprove") or (http.user_agent contains "sitesell") or (http.user_agent contains "Siphon") or (http.user_agent contains "Sucker") or (http.user_agent contains "TenFourFox") or (http.user_agent contains "TurnitinBot") or (http.user_agent contains "trendiction") or (http.user_agent contains "twingly") or (http.user_agent contains "VidibleScraper") or (http.user_agent contains "WebLeacher") or (http.user_agent contains "WebmasterWorldForum") or (http.user_agent contains "webmeup") or (http.user_agent contains "Webster") or (http.user_agent contains "Widow") or (http.user_agent contains "Xaldon") or (http.user_agent contains "Xenu") or (http.user_agent contains "xtractor") or (http.user_agent contains "Zermelo")

4、Managed Challenge:Basic Crawler & Bad Crawler 2

(http.user_agent contains "fuck") or (http.user_agent contains "lient" and http.user_agent contains "ttp") or (http.user_agent contains "java") or (http.user_agent contains "Joomla") or (http.user_agent contains "libweb") or (http.user_agent contains "libwww") or (http.user_agent contains "PHPCrawl") or (http.user_agent contains "PyCurl") or (http.user_agent contains "python") or (http.user_agent contains "wrk") or (http.user_agent contains "hey/") or (http.user_agent contains "Acunetix") or (http.user_agent contains "apache") or (http.user_agent contains "BackDoorBot") or (http.user_agent contains "cobion") or (http.user_agent contains "masscan") or (http.user_agent contains "FHscan") or (http.user_agent contains "scanbot") or (http.user_agent contains "Gscan") or (http.user_agent contains "Researchscan") or (http.user_agent contains "WPScan") or (http.user_agent contains "ScanAlert") or (http.user_agent contains "Wprecon") or (http.user_agent contains "virusdie") or (http.user_agent contains "VoidEYE") or (http.user_agent contains "WebShag") or (http.user_agent contains "Zeus") or (http.user_agent contains "zgrab") or (http.user_agent contains "zmap") or (http.user_agent contains "nmap") or (http.user_agent contains "fimap") or (http.user_agent contains "ZmEu") or (http.user_agent contains "ZumBot") or (http.user_agent contains "Zyborg") or (http.user_agent contains "attachment") or (http.user_agent eq "undefined") or (http.user_agent eq "") or (http.user_agent contains "Octopus") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "BLEXBot") or (http.user_agent contains "DataForSeoBot") or (http.user_agent contains "Adsbot") or (http.user_agent contains "Barkrowler") or (http.user_agent contains "Nmap Scripting Engine") or (http.user_agent contains "VelenPublicWebCrawler")

5、Path Check

对wordpress网站适用,后台登录地址和xmlrpc.php经常被扫,所以加入验证。

翻页加入验证,防止采集。

(http.request.uri.path eq "/wp-login.php") or (http.request.uri.path eq "/xmlrpc.php") or (http.request.uri.path contains "/page/")
继续阅读

UWP应用使用代理及Proxifier介绍

Win10 所有 UWP 应用均运行在被称为 App Container 的虚拟沙箱环境中,App Container 可以保证应用安全性,但同时也阻止了网络流量发送到本机(即 loopback), 使大部分网络抓包调试工具无法对 UWP 应用进行流量分析。同样的,该机制也阻止了 UWP 应用访问 localhost,即使你在系统设置中启用了代理,也无法令 UWP 应用访问本地代理服务器。

解决办法

解决办法有两种1. 使用 Fiddler 4 解除 UWP 应用的网络隔离。(此方法最为简单)下载安装 Fiddler 应用,下载链接:Fiddler 官网下载地址 (下载前的资料随便填)按照下列操作步骤操作

  1. 1.点击WinConfig
  2. 2.找到并勾选你所有需要解除网络隔离的应用
  3. 3. 点击Save Changes 保存

Fiddler 4操作示意图2. 通过命令行工具解除 UWP 应用网络隔离(这个办法稍微麻烦点) Win10 自带了一款名为 CheckNetIsolation.exe 的命令行工具,可以将 UWP 应用添加到排除列表,具体步骤如下:1. 通过注册表获取应用的 SID Win + R 快捷键打开「运行」窗口,输入Regedit打开注册表编辑器。然后复制下面这段地址定位黏贴到地址栏中:HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings Mappings 文件夹内的内容,就是所有 UWP 应用的对应的 SID。随便点击一个 SID 右边会显示应用名称。找到你要解除网络隔离的应用,复制它的 SID。

注册表示意图2.打开 CMD 面板,使用 CheckNetIsolation.exe 解除应用隔离 Win + R 快捷键打开「运行」窗口,输入CMD打开命令行。 直接在终端中输入:CheckNetIsolation.exe loopbackexempt -a -p= 等号后面加上你刚刚复制的应用 SID, 接着回车后命令行显示完成说一般就成功了。一次只能解除一个应用,想要解除多个应用,找到对应的 SID,依次解除即可。

CMD示意图

Clash和V2rayN

Clash 客户端自带的 Loopback插件就是截取自 Fiddler 的,如果你下载安装了 Clash,就不用再另外安装 Fiddler 了。

或者 Clash 也可以使用 TUN 模式。

v2rayN 最新版客户端也自带该程序,可以在文件夹根目录内找到,文件名为 EnableLoopback.exe,双击即可打开。

关于Proxifier

Proxifier是一款功能非常强大的代理客户端,支持Windows XP/Vista/Win7/Win10 和 MacOS,支持http/https、socks4/5、TCP、UDP等协议,可以指定端口,指定IP,指定域名、指定程序、指定用户名密码授权等运行模式,兼容性非常好,有点类似SOCKSCAP。

有许多网络应用程序不支持通过代理服务器工作,不能用于局域网或防火墙后面。这些会损害公司的隐私和导致很多限制。Proxifier解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。 此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。

Proxifier 功能特性

1)支持 Windows 和 MacOS 系统,Windows XP/Vista/Win7/Win10,MacOS,支持 http/https、socks4/5 等代理协议,支持TCP、UDP协议

2)Proxifier 代理客户端设置后,所有网络应用程序都可以实现代理上网,不需要逐一设置代理

3)Proxifier 代理客户端开启后,所有网络应用程序必须取消代理设置,否则客户端代理上网会失败

4)通过Proxifier代理上网,客户端必须先启动Proxifier,才能访问互联网

5)通过代理服务器解析 DNS 名称,通过代理服务器链可使用不同的协议

继续阅读

SQL替换与更新语句

update `content` set PageUrl=replace(PageUrl,'https://toutiao.com/group/','https://www.toutiao.com/article/');

把数据库表content中的所有PageUrl字段里的 https://toutiao.com/group/ 字符串替换成 https://www.toutiao.com/article/

如果要更新表中某个字段的内容,用新的内容覆盖旧的内容,使用以下语句:

UPDATE wp_posts SET post_title='aabb' WHERE ID='16';

用这个方法更新wordpress内容,例如排行榜页面,非常好用!

扩展阅读:https://www.runoob.com/sql/sql-update.html

图片反盗链(外链图片出现403的解决方法)

解放方法:

在网页html代码head中添加如下代码:

<meta name="referrer" content="no-referrer" />

原理:

  • http请求体的header中有一个referrer字段,用来表示发起http请求的源地址信息,这个referrer信息是可以省略但是不可修改的,就是说你只能设置是否带上这个referrer信息,不能定制referrer里面的值。
  • 服务器端在拿到这个referrer值后就可以进行相关的处理,比如图片资源,可以通过referrer值判断请求是否来自本站,若不是则返回403或者重定向返回其他信息,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403。
  • 在前端可以通过meta来设置referrer policy(来源策略),具体可以设置哪些值以及对应的结果参考这里。所以针对上面的403情况的解决方法,就是把referrer设置成no-referrer,这样发送请求不会带上referrer信息,对方服务器也就无法拦截了。

参考:

继续阅读

套CDN后防止Censys泄露源站真实IP

网站即使是套了cloudflare等cdn,通过访问https://ip地址,会暴露域名。

有些无良爬虫可通过HTTPS访问扫描全网IP,暴露证书、同时暴露你的域名。即使你套了CDN也逃不掉。像censys.io和shodan就是提供这种服务的。

示范一下扫描IP命令:

curl -v -k https://35.186.1.1

curl -v -k https://35.186.1.1
* Rebuilt URL to: https://35.186.1.1/
*   Trying 35.186.1.1...
* TCP_NODELAY set
* Connected to 35.186.1.1 (35.186.1.1) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=normal_domain.tld
*  start date: Nov 15 05:41:39 2019 GMT
*  expire date: Nov 14 05:41:39 2020 GMT
*  issuer: CN=normal_domain.tld
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> GET / HTTP/1.1
> Host: 35.186.1.1
> User-Agent: curl/7.58.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host 35.186.1.1 left intact
curl: (52) Empty reply from server

可以看见,证书和域名都暴露了。

解放方法

1、如果使用的宝塔面板

新添加一个站点,以当前服务器ip为域名,自签IP证书(本文末尾会提供空白的自签证书,任何域名都可使用),打开 【站点设置->配置文件】,在如图位置加上return 444;

最后将该站点,设置为“默认站点”即可。

2、Nginx配置

Nginx 版本高于等于 1.19.4,才可以使用 ssl_reject_handshake 特性来防止 SNI 信息泄露。如果 Nginx 版本太低,可以看看姥爷的这篇文章自编译 Nginx

下面就来讲讲 ssl_reject_handshake 怎么用。只要新添加个443端口默认块就可以了。

#新添加的443端口块,如果使用了错误的 Hostname,SSL 握手会被拒绝
server {
    listen 443 ssl default_server;
    ssl_reject_handshake on;
}
#常规的443端口,包含正确的域名和证书。对于携带正确 Hostname 的请求,服务器会继续做后续处理
server {
    listen              443 ssl;
    server_name         example.com;
    ssl_certificate     example.com.crt;
    ssl_certificate_key example.com.key;
}

重启nginx即可。

3、CDN IP加白名单

给CDN IP添加到白名单,只有CDN IP才可以访问源站。如果套的是cloudflare,cloudflare IP为:https://www.cloudflare.com/ips/

4、屏蔽 censys.io和shodan 的IP段和UA

这种方法只能防君子不防小人,而且还有很多未知的类似服务的IP和UA。所以不推荐这种方法。

最后附上空白自签证书。

继续阅读

wordpress更新提示“另一更新正在进行”

更新升级wordpress的时候出现“另一更新正在进行”错误提示,这种情况,一般出现在更新升级中断后,再次点击升级时。解放方法也很简单:

方法一、通过MySQL数据库管理工具(比如 phpMyAdmin),在 wp_options表中找到 core_updater.lock记录并将这一列数据删除。

方法二、通过终端登录数据库,假设表前缀是wp_,数据库是wordpress,

mysql -u root -p

use wordpress;

select * from wp_options where option_name='core_updater.lock';

修改wordpress图片默认保存路径为二级域名

WordPress默认是将多媒体文件存放在/wp-content/uploads/目录下。

1)wordpress3.5版本后在设置>>多媒体中找不到媒体路径的选项

不过我们可以通过下面的代码重新找回设置选项,将代码添加到主题目录的functions.php文件中。

//找回上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
 update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}
//找回上传设置结束

2)在后台>>设置>>多媒体中能看到如图增加的功能选项

修改保存路径为二级域名目录。

wordpress编辑器无法找到主页的区块模板

新安装的wordpress出现以下两种错误:

  1. 编辑网站的时候,提示“编辑器无法找到主页的区块模板”;
  2. 发布文章的时候,提示“发布失败。 您可能已经掉线。”

如果你网站有ssl证书,可能就是https引起的,解放方法也很简单:

在设置中,将“wordpress地址(URL)”和“站点地址”,两处的url前面的http改成https

改完后,如果发现无法进入wordpress后台,参看之前的文章:

WordPress添加https后出现重定向太多无法打开的错误

网站备份比较: Restic VS Rclone VS rsync

Restic VS Rclone

Restic 与 Rclone 都是开源的命令行文件备份(同步)工具,但却有着很本质的区别。

  1. 两者的相同点
  • 两者都是基于命令行的开源文件同步和备份工具。
  • 两者都支持将文件备份到本地、远程服务器或对象存储。
  1. 两者不同点
  • Rclone 面向的是文件同步,即保证两端文件的一致,也可以增量备份。
  • Restic 面向的是文件备份和加密,文件先加密再传输备份,而且是增量备份,即每次只备份变化的部分。
  • Rclone 仓库配置保存在本地,备份的文件会保持原样的同步于存储仓库中。
  • Restic 配置信息直接写在仓库,只要有仓库密码,在任何安装了 Restic 的计算机上都可以操作仓库。
  • Rclone 不记录文件版本,无法根据某一次备份找回特定时间点上的文件。
  • Restic 每次备份都会生成一个快照,记录当前时间点的文件结构,可以找回特定时间点的文件。
  • Rclone 可以在配置的多个存储端之间传输文件。

总的来说,Rclone 和 Restic 各有所长,要根据不同的业务需求选择使用。比如:网站数据的增量备份,用 Resitc 就比较合适。而常规文件的远程备份归档,用 Rclone 就很合适。

场景:如果是将服务器上的图片等文件,同步到OneDrive、Google drive等网盘做备份,用rclone非常方便。

rsync

rsync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件。非常适合用于主从服务器,两台服务器之间镜像。

可以增量备份、目录镜像等;

除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。

默认情况下,rsync 只确保源目录的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持相同,并且不会删除文件。如果要使得目标目录成为源目录的镜像副本,则必须使用–delete参数,这将删除只存在于目标目录、不存在于源目录的文件。

用法

Restic:

继续阅读