月度归档:2013年08月

debian下sudo的配置和使用

最近想使用PHP输入 命令行,控制服务器。立马就想到了使用 sudo来配置权限。
debian默认情况下已经装了sudo,如果要编辑sudo权限需要用root来操作,或者 输入命令
#sudo visudo

这里 假设要用PHP脚本控制服务器关机和重启,apache,php都是使用apt包安装的。这种情况下 php执行命令的用户默认会是 www-data ,所以编辑权限可以直接在最后一行添加

www-data ALL=NOPASSWD:/sbin/shutdown,/sbin/reboot (如果多个命令用逗号隔开)
(www-data)第一个是允许使用用户,如果前面加 % 则是允许的用户组。
(ALL) 允许登录的所有主机,包括本地和远程
(NOPASSWD) 这里是不用输入密码
(/sbin/shutdown,/sbin/reboot) 这里就是允许的命令了,如果是所有命令的话 直接 ALL 就行了

visudo跟vi又不太一样,退出的话 可以使用 Ctrl+x ,然后会提示 是否保存 输入 y,然后回车。。。

就可以使用 PHP执行这些命令了。。。

<?php
    system("/usr/bin/sudo reboot");  //重启
?>

页面加载完成 出现提示框动画(仿马蜂窝)

前段时间看到马蜂窝旅游频道后,会有个红色的提示框,能很显眼的提示页面的重点部分。。。

用的jQuery动画方法,还挺好用的,值得好好摸索。。。这次就先做个 提示框动画

<!doctype html>
<head>
    <meta charset="utf-8">
    <title>PHP圈</title>
</head>
<body>
<p><img class="logo" src="http://www.zjcampus.com/rs/img/logo.png" width="186" height="69"></p>
<script type="text/javascript" src="http://www.zjcampus.com/rs/js/jquery.js"></script>
<script>
(function($){

	/**
	 * 提示框
	 * 参数 to 结束地方的节点
	 */
	var alertBox = function(to){
		var to_p = $(to).position()
		var objNewDiv = $('<div>',{'style':'border:#FF0000 3px solid; width:99%; height:99%;position:absolute; left:0; top:0;'});
		$(objNewDiv).appendTo('body');
		objNewDiv.animate({left:to_p.left, top:to_p.top, width:$(to).width(), height:$(to).height()},2000,function(){
			//动画完后 在延时1秒
			objNewDiv.delay(1000).hide(0,function(){ objNewDiv.remove();});
		});
	}

	alertBox('.logo');
})(jQuery);
  </script>
</body>
</html>

rsync常见错误及解决办法

问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。

问题二:
@ERROR: auth failed on module tee
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。

问题三:
@ERROR: Unknown module ‘tee_nonexists’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

问题四:
password file must not be other-accessible
continuing without password file
Password:
原因:
这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd

问题五:
rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
原因:
对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873端口打开。

问题六:
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:
/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。

问题七:
rsync: chown “” failed: Invalid argument (22)
原因:
权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)
问题八:
@ERROR: daemon security issue — contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:
同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。

rsync同步备份使用方法

最近在玩树莓派,想直接在树莓派上备份东西。基本上rsync同步备份已经搞定,接下来还有 树莓派外接硬盘(估计整个有源的usb hub就行),网站实时备份。
首先在本地机器上配置 rsync服务器端,linux大多数都已经默认装了rsync。

centos和redhat这样安装
yum install rsync

ubuntu和debian这样安装
sudo apt-get install rsync 继续阅读