ssh默认用户更改
经常有这样的经历: 在使用ssh连接远程服务器时,如果ssh serverhost会以当前用户去连接,远程的默认登录帐号变成本地的当前用户,修改~/.ssh/config 文件,里面加上
user root
可以更改默认登录帐号为root,省去了必需指定用户登录方式(root@serverhost)的麻烦
linux下lftp工具使用
有时候需要在linux下批量上传一些文件或整个目录到远程FTP,由于ftp本身不支持整个目录的上传,因此可以使用lftp
用法如下
lftp ftp://username:password@somehost
登录后进入lftp提示符下
常见系统命令ls rm mkdir等都可在这使用
上传目录可用
mirror -R [remote] [local]
批量下载可用mget
批量上传可用mput
具体用法及其它指令可用help查看
mysql中使用外键约束(constraint)或触发器(trigger)来进行级联更新、删除
今天在帮同事解决一个关联更新问题时,阅读了下手册,整理下外键约束及trigger的知识,备用=)
我们通常有这样的需求:删除表Table 1,并删除其它表中与Table 1有关的若干记录。
举个例子:
现有2个实体- 学生、课程,1种联系- 成绩
分别创建 学生表 students, 课程表course,成绩表score
--创建 学生表 students CREATE TABLE IF NOT EXISTS `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; --插入若干记录 INSERT INTO `students` (`id`, `name`) VALUES (1, 'john'), (2, 'lucy'), (4, 'jack'); --创建课程表 CREATE TABLE IF NOT EXISTS `course` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- 插入数据若干 INSERT INTO `course` (`id`, `name`) VALUES (1, 'english'), (2, 'chinese'), (3, 'math'); --创建成绩表 CREATE TABLE IF NOT EXISTS `score` ( `sid` int(11) DEFAULT '0', `cid` int(11) DEFAULT '0', `score` float(6,2) DEFAULT '0.00', KEY `sid` (`sid`), KEY `cid` (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --插入若干数据 INSERT INTO `score` (`sid`, `cid`, `score`) VALUES (1, 2, 95.00), (1, 3, 65.00), (2, 1, 77.00), (2, 2, 68.50), (2, 3, 89.00);
现在,我希望:
删除students表记录的同时,自动删除成绩表中该同学的记录
删除course表记录的同时,自动删除成绩表中该课程的记录
我想到的做法有二:
一,使用innodb表的外键约束
ALTER TABLE `score` ADD CONSTRAINT `student_ibfk1` FOREIGN KEY `sid`(`sid`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
这里CASCADE作用就是在父表记录更新或删除时,子表更新或删除相应的记录
外键约束的动作除了CASCADE,还有RESTRICT(限制删除)SET NULL(设为空值,字段如果允许为空的话)等
外键约束文档详见:http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
二,使用触发器trigger进行操作
由于外键约束只能用于Innodb型表,因些对于MyIsam型表还得用trigger来进行更新
--以下触发器在删除students后同时删除表score中相关记录 DROP TRIGGER IF EXISTS `deleteScore`// CREATE TRIGGER `deleteScore` AFTER DELETE ON `students` FOR EACH ROW BEGIN DELETE FROM score WHERE sid=OLD.`id`; END //
trigger参考文档详见http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
mysql table status 如:取最近更新时间
$conn = mysql_connect();
$sql = “SHOW TABLE STATUS FROM `DATABASE` WHERE `Name` = ‘TABLE”;
$rs = mysql_query($sql,$conn);
while($row = mysql_fetch_object($rs)) $updatetime = $row->Update_time;
print_r($updatetime);
查看apache安装了哪些模块
apache支持-t -D参数查看所安装的模块
apachectl -t -D DUMP_MODULES
如
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
log_config_module (static)
env_module (static)
expires_module (static)
setenvif_module (static)
proxy_module (static)
……
linux下批量正则查找替换文本文件内容
find -name '*.html' | xargs perl -pi -e 's|href="(.*\.html)"|href="/html/$1"|g'
如上所示为我在所有形如xxx.html前加上/html/
正则查找,非常灵活方便。留帖备忘
支持ie6 ie7 ie8 firefox的javascript添加至收藏夹代码
function addfavor(url,title) { if(confirm('确定添加收藏?')){ var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf("msie 8")>-1){ external.AddToFavoritesBar(url,title,'slice');//IE8 }else{ try { window.external.addFavorite(url, title); } catch(e) { try { window.sidebar.addPanel(title, url, "");//firefox } catch(e) { alert("加入收藏失败,请使用Ctrl+D进行添加"); } } } } return false; }
window7系统玩星际争霸不能全屏的问题
Win键+R键,打开运行窗口,输入regedit 回车,这样就打开了注册表编辑器,然后,定位到以下位置:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\Configuration\
在Configuration这上面右键,选择查找,输入Scaling,在右框找到scaling,右键scaling修改
将数值改为3即可(原值是4),这种方法基本通杀所有Windows7下游戏的全屏问题。
另外,WINDOWS7玩星际菜单栏还有花屏现象(游戏中为正常)。可下载花屏补丁。