标签归档:linux

Linux下进程前后台的切换(fg、bg、jobs)

假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,终止这个程序,然后可以看到系统提示:
[1]+ Stopped /root/bin/rsync.sh
如果没有此提示,则用 jobs 命令查看任务:
#jobs
[1]+ suspended /root/bin/rsync.sh &
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
#bg 1
[1]+ /root/bin/rsync.sh &
用 jobs 命令查看正在运行的任务:
#jobs
[1]+ Running /root/bin/rsync.sh &
如果想把它调回到前台运行,可以用
#fg 1
/root/bin/rsync.sh
这样,你在控制台上就只能等待这个任务完成了。 继续阅读

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");  //重启
?>

很详细的curl命令使用大全

可以看作命令行浏览器

1、开启gzip请求
curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte

2、监控网页的响应时间
curl -o /dev/null -s -w “time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n” “http://www.kklinux.com”

3. 监控站点可用性
curl -o /dev/null -s -w %{http_code} “http://www.kklinux.com” 继续阅读

Linux下用scp做异地备份

继上一篇 《Linux用crontabs做MySQL本地备份》 之后,这次换做异地备份

本来想用rsync来做备份,但是用rsync需要另外在开一个端口,免得麻烦所以选择scp,scp用来做 mysql异地备份还是够用了。。。

首先让本地的服务器登陆线上ssh免密码

用root登陆本地服务器,输入

ssh-keygen -t rsa 继续阅读

利用OpenVZ VPS在CentOS6搭建PPTP VPN的方法

网上找了些方法,大部分是都卡在了 安装 pptp这一步上。情况是 pptp 和 ppp 版本不兼容或者与系统不兼容。。。

这次用Directspace的OpenVZ VPS搭建了 VPN试了下,感觉网速太不稳定了,不准备续费用下去了。。。

下面是步骤:

1、登陆SSH,检查VPS是否有必要的支持。如果检查结果没有这些支持的话,是无法安装pptp的。
有2个检查必须的,第一个检查:
cat /dev/net/tun

返回结果为下面的文本,表明通过:
cat: /dev/net/tun: File descriptor in bad state

第二个检查:
cat /dev/ppp

返回以下结果,则通过:
cat: /dev/ppp: No such device or address

返回:“Permission denied”则不通过。
上面的2条必须都通过,才可安装pptp。如果无法通过,只能去跟客服申请为你的VPS打开 TUN/TAP/PPP 功能了。或者在vps控制台去看看有没有启用这些功能的按钮。Directspace是在 vps控制台里启用就行 继续阅读

利用rsync做异地备份

这几天公司服务器硬盘坏了,去恢复数据 折腾了半天,突然意识到数据备份的重要性。所以索性做成异地备份。。。

准备是把公司本地的测试服务器拿来备份生产服务器上面的数据,但是 公司本地的服务器操作系统是windows,生产服务器操作系统是 linux。rsync支持从linux同步到windows。所以就用这个了。。。

windows下面的rsync软件叫cwRsync

主要用的软件是 cwRsync。。。此处就跳过服务器配置,客户端安装,直接说几个重要的地方
Linux服务器端的配置跟普通都是一样的。可以网上搜一下。。。这里主要说 Windows客户端同步Linux服务器端的文件。。。

命令如下:
“F:\Program Files\cwRsync\bin\rsync.exe” -rlptvzD –delete 219.153.42.78::cqd2d/bbs ../public_html
F:\Program Files\cwRsync\bin\rsync.exe为cwRsync安装的地址。。。
同步的目录只能用相对路径,不然没法更新
会报
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1148) [Receiver=3.0.8]
这种错误

rsync参数不能用 -avz,因为 windows的文件权限跟linux的不一样。如果参数里面有a的话,也不能同步。
解决方法就是用 -rlptD 参数代替 -a
会报 rsync chown 您的目录 failed: invalid argument(22) 这样的错误。。。。

因为 -a = -rlptgoD, 所以实际上就是去掉了 –owner –group
暨是不保留以前的用户和用户组

基本上搞定,然后直接写个脚本,加入到计划任务 就自动离地备份了

debian系统下的mysql数据库服务器重设root用户的密码

因为公司的Discuz论坛准备搬到新的服务器上面。所以在本地尝试搬家,发现Mysql服务器拒绝远程服务,然后就在 phpmyadmin 弄数据库权限,尝试添加一个用户可以发送远程请求。

结果弄完后 准备把新加的用户删了,不小心手划把自己也删了。。。怎么办root密码又不知道,只有想办法找回root密码然后添加之前的用户,然后分配管理权限。

公司的服务器是用的LAMP架构,Linux是用的debian的,下面就说一下在debian Linux的操作

下面具体说下 MySQL重置root密码:

打开机器登录Linux这些废话就不说了。。。直接从输入的命令说起

第一步:停止mysql服务

/etc/init.d/mysql stop

第二步:设置忽略密码启动mysql服务器

在安装目录找到my.ini配置文件,打开配置文件,找到[mysqld]一行,在下面添加skip-grant-tables后保存该文件,重新启mysql动服务。。。安装目录一般情况下在 /etc/mysql/ 目录下。

/etc/init.d/mysql start

第三步:用root用户登录Mysql并重设密码

#mysql -u root

  • mysql> use mysql;
  • mysql> update user set password=PASSWORD(“此处为新设密码“) where User=’root’;
  • mysql> flush privileges;
  • mysql> quit

第四步:把 /etc/mysql/my.ini 下面添加的 skip-grant-tables 注释掉。然后重启Mysql

/etc/init.d/mysql restart

这样就OK了。。。然后用root添加新帐户分配权限