手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

linux bash判断文件或文件夹是否存在

在写shell脚本的时候,还是有些注意事项的,比如。。空格,给变量赋值不能有空格,象a=1就不能写成a = 1,刚开始的时候好纠结。。

写判断语句的时候[]之间一定要有空格。以下是一些常见的判断:

参考:http://www.cnblogs.com/emanlee/p/3583769.html
  1. #如果文件夹不存在,创建文件夹  
  2. if [ ! -d "/myfolder" ]; then  
  3.   mkdir /myfolder  
  4. fi  
  5.   
  6. #shell判断文件,目录是否存在或者具有权限  
  7.   
  8.   
  9. folder="/var/www/"  
  10. file="/var/www/log"  
  11.   
  12. # -x 参数判断 $folder 是否存在并且是否具有可执行权限  
  13. if [ ! -x "$folder"]; then  
  14.   mkdir "$folder"  
  15. fi  
  16.   
  17. # -d 参数判断 $folder 是否存在  
  18. if [ ! -d "$folder"]; then  
  19.   mkdir "$folder"  
  20. fi  
  21.   
  22. # -f 参数判断 $file 是否存在  
  23. if [ ! -f "$file" ]; then  
  24.   touch "$file"  
  25. fi  
  26.   
  27. # -n 判断一个变量是否有值  
  28. if [ ! -n "$var" ]; then  
  29.   echo "$var is empty"  
  30.   exit 0  
  31. fi  
  32.   
  33. # 判断两个变量是否相等  
  34. if [ "$var1" = "$var2" ]; then  
  35.   echo '$var1 eq $var2'  
  36. else  
  37.   echo '$var1 not eq $var2'  
  38. fi  

 

macosx 10.10 开启深色模式

 比较简单

打开:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Dark
关闭:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Light
第二行其实就是恢复啦
切换到Dark模式后,去系统设置的general中将Appearance也改成Graphite,有写这个改动是:for menu,button和windows。

这回就真黑色了,但。。。大部分菜单都还没有反白,真让人揪心,不知道什么时候可以正常

ThinkPHP的主从数据库配置

最近涉及到的项目中用到了thinkphp,我都N年没有碰过这玩意了。但现在还是需要用一用。正好那些能够下载得到的wxcms也可以用这个来优化一下性能。。其实我就一台服务器。装逼而已

 

于是转一下别人的文章,因为他其中特别写了一句:只要是exec就一定从主库走,query一定从从库走。所以建议query中不要有实际的更新和插入操作。以防万一
原文地址:http://www.verydemo.com/demo_c327_i782.html
 
前言:
Thinkphp 框架本身是支持读写分离的,如何做呢?
 
最简单的做法是在配置文件中修改:
 
PHP代码
  1. 'DB_TYPE'=> 'mysql',     
  2. 'DB_DEPLOY_TYPE' => 1,  //开打支持多服务器                  
  3. 'DB_RW_SEPARATE'=>true, //读写<strong>分离</strong>分开    
  4. 'DB_HOST'=> '192.168.100.78,192.168.100.60'// 数据库服务器地址 master(写)/slave(读)    
  5. 'DB_NAME'=>'test',                   
  6. 'DB_USER'=>'root',                 
  7. 'DB_PWD'=>'root',           
  8. 'DB_PREFIX' => 'fav_',     
默认第一台数据库78是主数据库,负责写入操作,第二台60负责读操作,Thinkphp 会自动识别读和写,然后分配链接对应的数据库,来达到读写分离的效果。
 
注意事项:
 
1. 如果要设置分布式数据库,暂时不支持DB_DSN方式配置。
2.如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。
3.如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
 
因此,'DB_DSN'=> 'mysql:host=192.168.100.60;dbname=51fanli_cang', 这种方式不支持主从分离,需要改。
 
当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query,切记,否则乱掉了。
 
搞定!
---EOF---

Tags: thinkphp

curl和wget,折腾几个小时的服务器

 标题其实没什么,主要原因是。我在两台机器上部署了同样的程序,一个访问的时候一直显示404,一个就一直正常。死活找不到原因

1、背景

两台服务器,都是CentOS,一个可以公网访问,一个只能内网访问,因此一个可以在浏览器里打开,一个只能用命令行访问,习惯性的,我使用了wget

2、浏览器访问正常,命令行显示404

3、配置完全一样,问题不明。

wget的时候显示404,无输出。。也就导致没有任何文件信息被下载

4、使用的YII框架。结果,记录的LOG,分组了只记录了system.db,404的LOG未被记录

5、调整策略:

    a.用curl(有朋友建议)

    b.把LOG改为全部记录

于是就发现问题了。LOG里显示无默认控制器。CURL直接输出错误信息

原来,WGET看到http头是404后就不再下载内容,即使我有在文件里有输出,而CURL默认就是按浏览器访问的显示而正常输出在屏幕上。

问题解决。记录一下。就因为WGET和CURL的默认机制不一样。吐血三升

2B的阿里系产品经理

 积怨以久了。我不知道这个行为是怎么出来的。。。说说我的步骤和问题吧

1、我有一个淘宝帐号A,我有一个阿里妈妈帐号

2、我要登录阿里妈妈,阿里妈妈说你不能登录了,请使用淘宝帐号吧。在不明所以的情况下,翻看了阿里妈妈的N个帖子。学会了绑定,但是说不能绑定是卖家的帐号,或者曾经当过卖家的帐号。

3、重新注册一个新的淘宝帐号B(用邮箱注册因为我就一个手机,原来的帐号已经绑定手机了)。他们又顺便帮我开通了支付宝(真是感谢啊。。。所幸支付宝还能和现在的帐户绑定,毕竟我身份证只有一个。这理由真扯蛋)

4、上周五刚注册时。阿里妈妈能够登录了。好开心

5、周一,再登录。突然提示说:帐户存在异常,要我验证后才能开通

6、输入用户名密码,下一步的时候提示我,请输入手机号,还说:“1.请您放心,手机号码仅用于系统生成短信编码,不会对外泄露”,于是我输入了我的手机(绑定A的手机),结果它提示我:“此手机已绑定其他账户,无法进行验证,建议更换其他号码操作

首先我想问的是,如果你只是用于生成短信编码,你为什么还要一个未使用过的手机?其次,我明明是采用邮箱注册的,你不用邮箱来验证,却要使用手机?

7、咨询客服。客服说无法解决,一定要我绑定手机,还要我将原来的淘宝帐号绑定的手机解绑。

这真是一个笑话。好吧,至此,如果我不能登录,相当于我毁了一个7年的阿里妈妈帐号,毁了一个新的淘宝帐号、毁了一个支付宝帐号。

虽然阿里妈妈帐号没什么钱,只是我觉得负责这两个项目,或者说让我这样验证的产品经理很2B。不管是阿里妈妈的还是淘宝的。。这种思维真有意思。

Tags: 阿里妈妈, 淘宝, 产品经理