linux删除乱码文件

linux中发现了乱码文件,LL命令后发现是“?”或其他什么字符,总之就是没法正式的打出乱码文件的名称,这种情况想要删除或者修改,应该怎么处理?没关系,linux提供了像id一样的文件编号,来供使用。

不知道大家有没有碰到这种文件,因为是乱码,文件无法删除,这时我们就可以考虑用下面的命令进行删除文件或目录

ls -i //列出文件节点

find ./ -inum XXX(节点号) -print -exec rm -rf {} \; //删除节点号文件

find . -inum XXXX(节点号) -exec mv {} file.txt \; //其实我们还可以执行这个命令,修改乱码文件名为正常文件名

[root@ora9i installation]# ls -li
total 1307844
1343491 -rw-r–r– 1 root root 423559952 Sep 14 2012 amd64_db_9204_Disk1.cpio.gz
1343492 -rw-r–r– 1 root root 578948873 Sep 14 2012 amd64_db_9204_Disk2.cpio.gz
1392641 -rw-r–r– 1 root root 334834987 Sep 14 2012 amd64_db_9204_Disk3.cpio.gz
1490946 -rw-r–r– 1 root root 225374 Jun 2 02:55 p2617419_220_GENERIC.zip
1622017 -rw-r–r– 1 root root 286639 Jun 2 02:55 p3238244_9204_LINUX.zip
1622018 -rw-r–r– 1 root root 5814 Jun 2 02:55 p4198954_40_linux.zip
1490945 -rwxrwxrwt 1 root root 0 Jan 1 1970 RBh?????^??^???PB??!?l???9??????s??????y???9`??k?E??~?V6?ޘ#Xh???({??Ą????Q??????>???wJ?}a?A)??_yS

[root@ora9i installation]# find . -inum 1490945 -exec rm {} -rf \;

[root@ora9i installation]# ll
total 1307840
-rw-r–r– 1 root root 423559952 Sep 14 2012 amd64_db_9204_Disk1.cpio.gz
-rw-r–r– 1 root root 578948873 Sep 14 2012 amd64_db_9204_Disk2.cpio.gz
-rw-r–r– 1 root root 334834987 Sep 14 2012 amd64_db_9204_Disk3.cpio.gz
-rw-r–r– 1 root root 225374 Jun 2 02:55 p2617419_220_GENERIC.zip
-rw-r–r– 1 root root 286639 Jun 2 02:55 p3238244_9204_LINUX.zip
-rw-r–r– 1 root root 5814 Jun 2 02:55 p4198954_40_linux.zip

missing argument to `-exec` // 若使用中遇到这个问题,可能是因为rm {} -rf \; 这里“rf”后面和 “\” 少了空格。

文章来源:https://www.cnblogs.com/quanweiru/p/3764003.html

中国部署4台IPv6根服务器

IPv6时代即将来临

记者日前从下一代互联网国家工程中心获悉,由该中心牵头发起的“雪人计划”已在全球完成25台IPv6(互联网协议第六版)根服务器架设,中国部署了其中的4台,打破了中国过去没有根服务器的困境。

最新统计数据显示,截至2017年8月,25台IPv6根服务器在全球范围内已累计收到2391个递归服务器的查询,主要分布在欧洲、北美和亚太地区,一定程度上反映出全球IPv6网络部署和用户发展情况。从流量看,IPv6根服务器每日收到查询近1.2亿次。

根服务器负责互联网最顶级的域名解析,被称为互联网的“中枢神经”。美国利用先发优势主导的根服务器治理体系已延续近30年。在过去的IPv4(互联网协议第四版)体系内,全球共13台根服务器,唯一主根部署在美国,其余12台辅根有9台在美国,2台在欧洲,1台在日本。

工程中心主任刘东对新华社记者说,这个治理体系一方面造成了全球互联网关键资源管理和分配极不均衡;另一方面,缺乏根服务器使各国抵御大规模“分布式拒绝服务”攻击能力不足,为各国互联网安全带来隐患。

随着互联网接入设备数量增长,原有IPv4体系已经不能满足需求,IPv6协议在全球开始普及。

刘东介绍说,工程中心抓住这个历史机遇,于2013年联合日本和美国相关运营机构和专业人士发起“雪人计划”,提出以IPv6为基础、面向新兴应用、自主可控的一整套根服务器解决方案和技术体系。

在与现有IPv4根服务器体系架构充分兼容基础上,“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6根服务器架设,其中1台主根和3台辅根部署在中国,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。

地址多到可分配给空中尘埃

中国近日发布《推进互联网协议第六版(IPv6)规模部署行动计划》,推动建设IPv6商用网络。当前,基于IPv6的下一代互联网成为各国推动新科技产业革命和重塑国家竞争力的先导领域,亚太互联网信息中心预测,10年内IPv4将全面退出历史舞台,互联网将全面转向IPv6。

TCP/IP协议是互联网发展的基石,其中IP是网络层协议,规范互联网中分组信息的交换和选路。目前采用的IPv4协议地址长度为32位,总数约43亿个IPv4地址已分配殆尽。

统计显示,美国拥有IPv4地址最多,平均每个网民可分到近6个地址,而中国、巴西、墨西哥等发展中国家网民人均仅有不到半个IPv4地址。

为应对地址不足,上世纪90年代,负责互联网国际标准制定的机构——互联网工程任务小组(IETF)协调各方意见后,推出IPv6协议,并大力推广。IPv6采用128位地址,将地址空间扩大到2的128次方。中国工程院院士、清华大学教授吴建平说,这个空间大到无法想象,甚至“可以分配地址到空中的尘埃”。TCP/IP协议共同开发者、被誉为“互联网之父”之一的文顿·瑟夫博士表示:“IPv4是实验网络,IPv6网络是未来发展的必由之路。”

开放性、共享性是互联网发展的原动力,但也给黑客、不法分子甚至恐怖分子带来可乘之机。

“IPv6带来的实名制不会泄露隐私,有了IPv6,可以很大程度上减少网络诈骗,因为可以精准定位地址。”中国工程院院士邬贺铨说,IPv6的可溯源性还可很好支持越来越多设置实名认证门槛的网上应用,以“芝麻信用”为例,凭用户上网地址有助判断其信用。

文章来源:http://news.163.com/17/1128/06/D4AD2PE8000187VI.html

mysqldump 导出命令实例

mysql 以sql文件导出一个表的部分数据的命令

mysql 以sql文件导出一个表的部分数据的命令

mysqldump -t -uuser -ppassword --database dbname --tables tablename --where="true limit 0,500000" > name.sql

参数介绍:

-t 仅导出数据;

-u 数据库登录用户名

-p 数据库登录用户密码

–database 指定数据库

–tables 指定表

–where 添加where条件

最后 > name.sql 表示 将数据导出在名字为 name.sql 的文件中,此处名字也可以是目录

phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction

phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction
但是可以访问ArticleController里面的任意方法
看说是Apache 的rewrite问题

但是我的.htaccess文件都是按照文档里面的。

两个.htaccess

第一个

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule  ^$ public/    [L]
<span">RewriteRule  ((?s).*) public/$1 [L] 
</IfModule>

public目录下面的.htaccess中

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] 
</IfModule>

访问路由 localhost/index/test访问不到,但是localhost/index.php?_url=/index/test可以访问得到

解决方法:

直接打印 $_request,发现当路径为 localhost/index/test 的时候,没有_url参数,判断是url重新没成功。将 RewriteCond %{REQUEST_FILENAME} !-f 这行去掉,发现_url 的值是 index.php/test

也就是说apache没有将index/test 看成一个整体,分开请求了,先请求index再请求test,当index不存在时,直接去找index.php,index.html,此时index匹配成功重写取消,而index下的test没有匹配成功,重写后就成了index.php/test了。那么apache为什么不是把index/test看成一个整体,而是分开去处理呢?

怀疑是因为httpd.conf中打开了允许列出目录的功能 mod_autoindex;并设置了Options Indexes允许目录浏览,受目录浏览影响导致重写问题,

取消掉Options 的其他参数,仅保留FollowSymLinks参数,重启apache后,index/test 可以正常访问了

难道真是目录浏览功能的问题?

Options +Indexes +Includes +FollowSymLinks +MultiViews

配置中一共有四个参数,挨个试,最后发现是受MultiViews参数影响。。。但是具体为什么就不清楚了,

ps:出现该问题的工具是wampserver 3.0.6 64bit 版本,32bit版本的没出现该问题,老版的apache也没出过现该问题,猜测可能是apache版本升级进行了什么调整导致的,具体原因再论。

2018-11-28 更新
今天看到一篇文章,标题为: apache的MultiViews的问题

文章来源:https://blog.csdn.net/u014359108/article/details/70859651

该博文介绍了:

MultiViews的作用是当访问到目录中不存在的对象时,
如访问”http://localhost/test/target”,
则apache会寻找该目录下的所有target.*文件.
如果test目录下存在target.jpg文件,
则会把这个文件返回给客户,
而不是返回出错信息.
再分析一下我们现在面对的实例.由于MultiViews的特性,
当访问“http://servername/Index/index”时.
由于根目录下存在index.php文件
所以上面的访问会变成这样:
“http://servername/Index.php/index”

到这里,就清楚为什么httpd.conf中有MultiViews 配置是

Options +FollowSymLinks +MultiViews

phalcon 访问indexController 的方法是就只能访问indexAction()了

mysql解决only_full_group_by

mysql解决only_full_group_by

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。

一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了

only_full_group_by 模式开启比较好。

因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。

 

具体出错提示:

[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

1、查看sql_mode

01
select @@global.sql_mode;

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、去掉ONLY_FULL_GROUP_BY,重新设置值。

01
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

1
set
sql_mode
='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

 

解决办法大致有两种:

一:在sql查询语句中不需要group by的字段上使用any_value()函数

这种对于已经开发了不少功能的项目不太合适,毕竟要把原来的sql都给修改一遍

二:修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项

若我们项目的mysql安装在ubuntu上面,找到这个文件打开一看,里面并没有sql_mode这一配置项,想删都没得删。

当然,还有别的办法,打开mysql命令行,执行命令

1
select @@sql_mode;

这样就可以查出sql_mode的值,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):

1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;

如果 [mysqld] 这行被注释掉的话记得要打开注释。然后重重启mysql服务

注:使用命令

1
set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

这样可以修改一个会话中的配置项,在其他会话中是不生效的。

微信invalid signature处理

微信js_sdk, invalid signature 错误,问题原来出在这里了。。。

微信分享功能,测试没问题,放到线上后一直报错,config:invalid signature,签名校验工具生成的和后台生成的一样,网上说的各种方法都实验了一遍,正式线上环境依然报错。

偶尔灵光一闪,发现了问题所在:

因为先用的测试环境,前端的appid就用的测试号的appid,上传到正式环境后,服务器上正式环境的appid是正式的appid,但是前端的没有改,后端sign生成没问题,拿后端的参数校验也没问题,唯独appid,因为是写死在前端的,没有改,所以到线上后,就报错了。。。。

还是自己不够细心,在此记录下,也希望为能为遇到同样问题的您,提供一个解决问题的线索。。

dede 添加addfields属性后,自定义字段还是出不来

dede 添加addfields属性后,自定义字段还是出不来

如下列内容,写好后,发现自定义的mytitle字段没法显示,

{dede:arclist addfields=’mytitle’ row=’8′ }
[field:mytitle/]<br />
{/dede:arclist}

别人的东西用起来就是麻烦,网上查还查不到详细介绍,

但是通过详细观察发现,arclist 用到 addfields 属性时,都伴有 channelid 属性,难道是缺少了这个属性导致的

{dede:arclist addfields=’mytitle’ row=’8′ channelid=’3′ }
[field:mytitle/]<br />
{/dede:arclist}

加上后,自定义的 mytitle 字段可正常显示了

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

在后台准备选择WordPress自动升级的时候看到有”另一更新正在进行”错误提示,无法执行升级到最新版本的问题。通过搜索看到也有网友遇到这个问题,可能是因为上一次升级过程中导致占用库表,然后被锁定的关系无法继续。

第一、出现的错误问题

完整解决升级WordPress程序提示"另一更新正在进行"问题

应该是数据库表中有表被锁定导致无法继续。

第二、解决问题

1、登入数据库客户端,打开wp_options数据表,然后找到core_updater.lock字段。

SELECT * FROM blog_options WHERE option_name LIKE ‘%core_updater.lock%’

 

2、找到这个字段,然后删除。

最后,我们再去执行升级WordPress就没有这个”另一更新正在进行”问题错误提示,问题解决了。

执行 rm -rf /bin 命令后

不小心删除了/bin目录,对于我们这种对系统认识不太高的人来说,的确是受到了灾难性的打击,但是静下心来好好搜索分析,还是能找到解决办法的,跨过了一个坎,就是一次成长,亲们,发现php的强大了吗^_^!

由于服务器被挖矿程序黑了,cpu占到100%,在删除相关问题文件的时候,不小心执行了 rm -rf /bin 命令,然后再删除另一个恶意文件时,发现rm命令不能用了,查询一下,发现ls和vi这些个基本命令全都不可用了,这下发现自己闯大祸了。线上服务器出问题从来没有小问题。

什么都不敢动了,赶紧网上查解决办法,网上大体上是给出了两个方案:一个是去机房使用系统光盘恢复bin目录;一个是从相同系统中拷贝bin目录下的文件到当前目录。简单了解了下,如果删除后取消了远程连接,也没办法再登录了,就只能用第一个方法了。还好,我保留着连接没有断,另外有一个相同系统的正常的服务器的bin目录可供使用,所以决定用第二个方案。

然而,问题又来了,bin被删除后,基本上系统什么命令都没办法执行了,cp,scp等等所有能用的命令都不可用了。。。

正在陷入极度恐慌之时,搜索到一篇文章,给了我一个思路,文章地址:http://www.cnblogs.com/hark0623/p/5886091.html,就是将文件放到web服务器上,然后通过wget将文件拉倒当前服务器来。接下来将被删除bin目录的服务器称为A,同系统正常服务器称为B;

按照这个思路,我将B服务器上的bin目录copy了一份到B服务器的web目录,浏览器测试可以将文件下载下来,接下来考虑怎样在A服务器上获取文件。原本文章里面说的使用wget的功能,经测试发现命令不可用,就是说wget也是在bin目录里的命令。那就再换思路,除了bin目录里的命令,还有哪些是可以远程获取文件内容的。

由于A、B两台服务器用的都是php,我就考虑,能不能用php的函数实现从B服务器上复制文件到A服务器上来的可能性。

php执行脚本的路子已经很熟悉了,但是当前情况是,A服务器上已经没办法进行vi等类似的编辑操作,也没法进行git等版本控制器的操作了,那么php有没有类似的命令行操作呢?然后继续网上搜索信息,发现php是可以直接执行php脚本的,参考文章地址:http://www.linuxdiyf.com/linux/13076.html,文章里提供了一个方法:

/usr/local/php/bin/php -r 'phpinfo();'

经过测试,使用下面的命令:

/usr/local/php/bin/php -r '$content=file_get_contents("http://abc.def.com/testbin/ls");file_put_contents("ls",$content);'

顺利的将B服务器上的文件拷贝到了A服务器上来,测试是否可用

./ls

提示权限不足,跟这篇文章给的结果一样:http://www.cnblogs.com/hark0623/p/5886091.html,采用文章里的方法:perl -e “chmod 0777, ‘mkdir'”,perl命令依然不能用,那就继续php解决:

/usr/local/php/bin/php -r 'chmod("ls",0777);'

再次测试 ./ls 发现可用了,按照这个思路,重点拿到了cp和rz文件,通过cp将rz文件copy到 /bin 目录下,然后将剩下的文件全部通过rz上传到A服务器的/bin目录,chmod修改权限后,基本命令都恢复可用了,远程登录也OK了,至此问题解决

php+jquery玩转json数据

web开发,怎样用json数据才能用的爽?

由于json格式的数据在使用上的优势很明显,现在做项目时大多使用json格式进行数据传输,如果使用 php + jquery + ajax ,那使用json数据让码农怎一个爽字了得。。。

但是需要注意的是,php有个函数是将数据转换成json串,不说你们也知道了,就是json_encode()函数,而用这个函数后直接将数据echo,jquery还是不认数据是json数据的,只认为是普通字符串。这事,处理返回结果就让人不爽,复制下面的代码,放到php里面,返回的数据,js可以直接当对象用了,大功告成。。。

header(“Content-type:text/json”);

header头内容不做多余介绍,只要大家用的爽就行,想了解可以自己学去!!!