我爱大自然: 鲁肉饭之大数据 - 这是一个围绕着“大”的故事
以下我要写的文章,其实不是我爱写的文章类型,因为这种文章的逻辑不通,而且对科技界一点贡献也没有。再者我也不喜欢吃鲁肉饭,这篇算是比较没有营养的文章,大家可以当作笑话看看就好。不过我还是有些“大数据”的观念想跟大家分享。
以下我要写的文章,其实不是我爱写的文章类型,因为这种文章的逻辑不通,而且对科技界一点贡献也没有。再者我也不喜欢吃鲁肉饭,这篇算是比较没有营养的文章,大家可以当作笑话看看就好。不过我还是有些“大数据”的观念想跟大家分享。
这两天 WannaCry (WanaCrypt0r 2.0) 勒索病毒肆虐,台湾成为全球第二重灾区!!
这个病毒是针对 Windows 的 SMB 漏洞进行攻击,大部分其他病毒均是透过执行病毒所感染的档案来传播,与其他病毒不同的是,WannaCry 勒索病毒具有自行在“局域网路”扩散的能力。
目前确定会遭受感染的作业系统为 Windows XP/Vista/7/8/8.1/10、Windows Server 2003/2008/2012,意思就是所有的 Windows 版本都会遭受感染。
要使用这些扩充套件,你得先安装 Google Chrome 浏览器。
MediaWiki 默认只能上传 png、gif、jpg、jpeg 这些图档,我们可以在 LocalSettings.php 编辑:
$wgEnableUploads = false; $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );
加入你额外想要上传的档案类型 (找不到这两行的话就自己加上去):
$wgEnableUploads = true; $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'zip', 'pdf', 'rar' );
上面的目的是为了可以额外再上传 zip、pdf、rar 类型的档案。可惜事与愿违,上传 pdf 与 rar 档都没问是,但要上传 zip 档却给我出现:
MIME 类别 "application/zip" 不是容许的档案格式。
原来是因为 MediaWiki 有设一些副档名的“黑名单”,刚好 zip 就在其中,设定档在: includes/DefaultSettings.php
找到内容:
$wgMimeTypeBlacklist= array(
# HTML may contain cookie-stealing JavaScript and web bugs
'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript',
# PHP scripts may execute arbitrary code on the server
'application/x-php', 'text/x-php',
# Other types that may be interpreted by some servers
'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',
# Client-side hazards on Internet Explorer
'text/scriptlet', 'application/x-msdownload',
# Windows metafile, client-side vulnerability on some systems
'application/x-msmetafile',
# A ZIP file may be a valid Java archive containing an applet which exploits the
# same-origin policy to steal cookies
'application/zip',
);
将“'application/zip',”删除即可。
至于上传 zip 档未来的后果会是如何...这我就不能预料了。
C:\>powercfg /lastwake
唤醒记录计数 - 1 唤醒记录 [0] 唤醒来源计数 - 1 唤醒来源 [0] 类型: 唤醒计时器 拥有者: [SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) 拥有者提供的原因: Windows 将执行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求唤醒电脑的工作。
C:\>powercfg /waketimers
没有的话会显示:
系统没有使用中的唤醒计时器。
有的话会显示:
[SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) 设定的计时器在 下午 10:59:29 的 2017/2/11 到期。 原因: Windows 将执行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求唤醒电脑的工作。
你得依查询的状况去找出程式来关闭唤醒电脑功能。
例如,根据上面于我的电脑执行 powercfg 所得到的结果,我必须去执行 SyncBack 程式,将 Profile: DailyBackup 于排程设定中的“Wake the computer to run this task”选项给关闭。
Windows 的“自动维护”功能也会唤醒电脑。
关闭唤醒的步骤:
“iframe (内置框架)”是用来在网页中的特定位置嵌入另一个网页。目前 Facebook、Google+、Twitter...等用来在网页上显示社群内容的社群元件,几乎都是以 iframe 实作出来的。
原本框架是一种很好的应用,但如果是自己辛苦制作的网页被别人的网站以 iframe 嵌入,因而出现在别人的网站里,成为别人网站的一部份!!这种感觉就像是自己的心血被别人整碗捧走一样!!
于网页的原始码加入以下 Script:
<script type="text/javascript"> if( top.location != document.location ){ top.location.href = document.location.href; } </script>
以上的 Script 会检查浏览器最上层视窗的网址是否与目前网页的网址一致,如果不一致,则把最上层视窗的网址改为目前网页的网址,就酱。
于网页的原始码加入以下 Script:
<script type="text/javascript"> if( top.location != document.location ){ document.write("<h1 style='color:#FF0000'>未经授权嵌入别人的网页是可耻的行为!!</h1>(<a href='"+document.location+"' target='_blank'>原站网址</a>)"); } </script>
以上的 Script 会检查浏览器最上层视窗的网址是否与目前网页的网址一致,如果不一致,就显示:
未经授权嵌入别人的网页是可耻的行为!!
(原站网址)
我比较不喜欢与人家互呛,所以我通常是用“方法 1”啦!
1. 备份单一数据库:
$ mysqldump -u Username -p --opt DatabaseName > Backup.sql
2. 仅备份特定数据库下的资料表:
$ mysqldump -u Username -p --opt DatabaseName Table1 Table2... > Backup.sql
3. 仅汇出资料表结构:
$ mysqldump -u Username -p --opt --no-data DatabaseName > Backup.sql
4. 备份全部的数据库:
$ mysqldump -u Username -p -A --opt > AllBackup.sql
1. 建立数据库,再从备份档汇入单一数据库:
$ mysqladmin -u Username -p create DatabaseName
$ mysql -u Username -p DatabaseName < Backup.sql
2. 从备份档汇入全部的数据库 (不需先建立数据库):
$ mysql -u Username -p < AllBackup.sql
状况 1.
汇入数据库时出现错误讯息: Unknown collation: 'utf8mb4_unicode_ci' 或 Unknown collation: 'utf8mb4_unicode_520_ci'
说明:
MySQL 于 v5.5.3 版之后才有“utf8mb4”的编码格式。原本 utf8 的最大编码长度为 3bytes,而 utf8mb4 的最大编码长度为 4bytes,因此它比 utf8 可以储存更多的字符。但是以常用的文字来讲,utf8 已经完全足够使用了。若不升级 MySQL Server,则只须将汇入的字符编码格式改为原本的 utf8。
解决方法:
先将备份档中的 utf8mb4 字串替换成 utf8: (以下的三行指令需依照顺序执行)
$ sed -i 's/utf8mb4_unicode_ci/utf8_general_ci/g' Backup.sql $ sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' Backup.sql $ sed -i 's/utf8mb4/utf8/g' Backup.sql
全部替换完再进行汇入:
$ mysql -u Username -p DatabaseName < Backup.sql
状况 2.
以 mysqldump 汇出数据库时出现错误讯息: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'test' when using LOCK TABLES
说明:
这错误讯息已说明了用来执行 mysqldump 的帐号没有“LOCK TABLES”权限! 通常用 root 帐号汇出数据库不会发生这个问题,因为我们会给 root 所有的权限。然而我们在设定其它帐号时可能会忘了给它设定“LOCK TABLES”权限,而执行 mysqldump 至少需要“SELECT”与“LOCK TABLES”权限才行,最好再加上“SHOW VIEW”、“EVENT”与“TRIGGER”。
解决方法:
重新授予用户权限:
grant SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER on *.* to 'backup'@'localhost' identified by '{Password}';
flush privileges;
状况 3.
从 cpanel 下载的 MySQL 档案格式为 *.gz,可以用 gunzip 解压缩:
$ gunzip Backup.sql.gz
注意: 使用 gunzip 解压缩后,原本的 *.gz 会被删除!!若要保留旧档,须改用下列指令:
$ gunzip -c Backup.sql.gz > Backup.sql
MySQL 的数据库放在 /var/lib/mysql 下,以数据库的名称做为目录的名称。直接将 /var/lib/mysql 下的数据库目录用 tar 指令个别压缩起来即可做为备份。要还原再把档案解压缩回去。
要以这种方式执行备份与还原都必须先停止 MySQL 的服务:
$ service mysqld stop
第一次遇到客户因为自己 Server 的 DNS 问题,造成我方要寄信给客户时,收件者的 EMail Address 会于 SMTP Server 端被自动变更 (寄给 user@example.com 会变成寄给 user@other.example.com),以致于客户收不到 EMail 的问题!! (客户可能以为是我方的问题)
我自己测试的结果是与 DNS 的 CNAME 有关:
C:\>nslookup -type=cname example.com Server: dns.hinet.net Address: 168.95.1.1 example.com canonical name = other.example.com
同时我在网络上找到一篇微软的 KB 文件,已经写得很清楚了,我就直接把内容放上来。
2020/12/30 更新:
Google 通知,将于 2021 年初停止透过西联汇款支付款项,所以本网页的教学大概也没什么用了。
如要继续收到 Google 支付的款项,你必须登入自己的帐户,然后新增或选取其他收款方式 (汇款或支票)。
约莫等了半年,终于又收到了一笔 Google AdSense 的广告收入了,算是农历过年前的一个小小小红包。
在台湾,AdSense 的用户可以使用“西联汇款”来进行收款,目前台湾有支援西联汇款的银行有京城银行、大众银行与元大银行。
我是使用“京城银行”,这个有点陌生的银行。它的“网络西联汇款”服务可以直接将我的 AdSense 广告收益从美金转为台币存入我的银行帐户,并且不收取任何手续费、不用等待,但是会有汇损的问题。
不过我今天要操作收款时,发现做为“汇款人”的 Google 的身份又改变了! 原本的身份“Google Ireland Ltd. (爱尔兰)”,更早之前是“Google Inc. (美国)”,现在的汇款人身份则为“Google Asia Pacific Pte. Ltd. (新加坡)”!
这个付款人的资讯会影响我们能否正常收款,不过没关系,下面会教你如何识别付款者的身份。
我们解决了什么问题?我们创造了什么价值?
近期回响