PuTTY 这类的 SSH 客户端显示完整输出内容
加上 | more -c 即可
比如:
.configure --help | more -c
加上 | more -c 即可
比如:
.configure --help | more -c
在mac终端下输入
ssh -l root *.*.*.* 就可以远程连接Centos服务器了,端口没变还是:22
如果改变端口用下面方法输入:
ssh -p 448(你改变的端口) -l root(连接用户名) *.*.*.* 这个是端口改变后的连接
记录一下:Sftp用Transmit软件进行Ftp操作
ssh
ssh 连接的时候 Host key verification failed.
解决方法:
vi ~/.ssh/known_hosts
进入此目录,删除192.168.1.90的相关rsa的信息即可.
或者删除这个文件
cd ~/.ssh/
rm known_hosts
来源
作者:瑞克互动
网站:http://www.reake.com/
要備份 MySQL 資料庫主要分為兩個方法,
一是將資料庫目錄完整備份
二是使用 MySQL 內建的 mysqldump 程式。
備份資料庫目錄
MySQL 預設的儲存目錄在 /var/lib/mysql 內容,底下會有以資料庫名稱的目錄,例如 mydb 目錄便應該是 mydb 資料庫的資料。
如果 MySQL 正在運行,請先停止 MySQL,原因是可能會有資料未完全寫入,而 MySQL 會 lock 在使用中的 DB 檔案。
/etc/rc.d/init.d/mysqld stop cd /var/lib/mysql/ tar zxcf mydb_backup.tgz mydb /etc/rc.d/init.d/mysqld start
以上指令會先停止 MySQL,然後把 mydb 資料庫製作一個 taz 檔的備份,並儲存到 mydb_backup.tgz。
在使用以上指令時,請根據個別系統的設定作出修改。
好了,以上就麼 3 句指令就完成備份了,如果不幸的事情發生了,資料庫發生錯誤而要復原資料,可使用以下指令:
/etc/rc.d/init.d/mysqld stop cd /var/lib/mysql/ mv mydb mydb_error tar zxvf mydb_backup.tgz /etc/rc.d/init.d/mysqld start #以上指令是先把 /var/lib/mysql/mydb 移到 /var/lib/mysql/mydb_error,然後將原先製作的備份檔解壓到 /var/lib/mysql/mydb。
mysqldump
雖然以上方法十分簡單,但有一個問題存在,那就是在備份及復原時均需停止 MySQL 的運作,這樣對於實際應用十分不便。再者,這樣備份出來的檔案,如果在相同版本的 MySQL Server 應該沒有問題,但移到版本不同的 Server 則不一定可以成功復原。
因為有以上的問題,MySQL 已經內建了備份工具,它就是 mysqldump。
mysqldump 的備份方法是將資料庫內的每個資料表結構及每筆資料產生 SQL 語句,然後存到文字檔。而且它可以自訂每一個資料表一個檔案,以及將資料表結構及資料分開儲存,以下是使用例子:
mysqldump --user=root -p mydb > /backup/mydb.sql
以上指令會使用 mysqldump 將 mydb 備份到 /backup/mydb.sql,在輸入指令後,需要輸入 MySQL 的 root 密碼。
至於復原資料同樣簡單,只要一句指令便完成:
mysqldump --user=root -p mydb < /backup/mydb.sql
以上指令會將 /backup/mydb.sql 備份檔復原到 mydb 裡面。如果你的 MySQL Server 不止一個資料庫,希望可以一次過將所有資料庫備份起來,可以寫一個簡單的 shell script 完成,又或者使用以下指令:
mysqldump --user=root -p --all-databases > /backup/mysql.sql
這個 –all-databases 代表所有資料庫,這樣 mysqldump 便會將所有資料庫備份到 /backup/mysql.sql。
2015年8月16日更新
如果还原单个数据库出现问题,可以进入mysql进行还原
mysql -hlocalhost -u用户名 -p密码 进入mysql create database test; use test; source /root/test.sql
====================================================
歡迎轉載,但轉載時請保留此宣告,不得作為商業用途
作者: Sam Tang
來源網站: http://www.phpdc.com/
DirectAdmin 主机开通后有个临时访问地址:http://ServerIP/~username/
如果安装了suPHP,通过该地址是无法解析PHP文件的,会抛出500错误。
关于原因引用DirectAdmin官方帮助文档
By default, suPhp is compiled in "paranoid" mode. This means that the settings in the user httpd.conf files:
“suPHP_UserGroup username username”
will require all php files to be owned by username or suPhp will throw a "500 Internal Server Error".
This does not apply to domains, when used normally, because each domain has it's own VirtualHost with the suPHP_UserGroup inside it using the correct settings.
The ~username (UserDir) method will fail in paranoid mode, because there is not a virtualhost for each ~username path, and no suPHP_UserGroup settings for each user, hence you get the 500 error.
因为suPHP_UserGroup默认安装是owner模式,所以通过http://ServerIP/~username/地址访问suPHP不会通过,PHP程序用域名访问才会通过。解决办法是将owner模式修改为paranoid模式。可以登入SSH输入以下命令完成:
cd /usr/local/directadmin/custombuild mkdir -p custom/suphp cp -fp configure/suphp/configure.suphp custom/suphp/configure.suphp perl -pi -e 's/paranoid/owner/' custom/suphp/configure.suphp ./build clean ./build suphp cd /usr/local/directadmin/data/templates/custom cp -f ../virtual_host* . perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' virtual_host*.conf perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' /etc/httpd/conf/httpd.conf perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' /etc/httpd/conf/extra/httpd-directories-*.conf echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue
Which will change all references of suPHP_UserGroup to #suPHP_UserGroup, basically, just commenting them out.
/etc/httpd/conf/extra/httpd-includes.conf
添加以下内容
<Directory "/home/username"> <IfModule mod_suphp.c> suPHP_Engine On suPHP_UserGroup username username SetEnv PHP_INI_SCAN_DIR /usr/local/directadmin/data/users/username/php/ </IfModule> </Directory>
重启apache服务:service httpd restart
本文档内容参考引用自DirectAdmin官方帮助中心:http://help.directadmin.com/item.php?id=176
#!/bin/bash runck=`ps -fe |grep "httpd" |grep -v "grep" |wc -l` if [ $runck -eq 0 or 1 ]; then sudo service httpd restart else echo “run status starting” >>/var/log/run.log fi
本文参考学习:
http://www.linuxqq.net/archives/160.html
http://wangyan.org/blog/pid-auto-reboot-shell-html.html
http://www.fushanlang.com/blog/linux-shell-jin-cheng-jian-kong-yu-zi-dong-zhong-qi-2236/
有个用户的MySQL数据库表在phpMyAdmin中显示使用中,提示已经损坏
MySQL的错误日记提示:Table ‘xxx’ is marked as crashed and should be repaired
如果和野草主机一样服务器安装了phpMyAdmin,登入进去,选中有问题的表,滑倒网页底部,有“选中项”的,打开选项,点击“修复表”,即可修复。
1.显示最后20行
tail -n 20 文件名
如tail -n 20 log.txt
2.显示中间20,从1000开始
cat log.txt|tail -n +1000|head -n 20
注:tail -n +行号 意思为 从第多少行开始 ,如果是 tail -n -行 == tail -n 行 意思为文件末尾多少行的数据
head -n 20 前20行的数据
3.也可以用sed命令
如 sed -n '100,120p' log.txt 100 到120行的数据。
参考学习:http://www.cnblogs.com/tuozi001/archive/2013/01/10/2855617.html
[root@localhost ~]# service mysqld start
Another MySQL daemon already running with the same unix socket.
正在启动 mysqld: [失败]
尝试重启,出现如下错误
[root@localhost ~]# /etc/init.d/mysqld status
mysqld 已停
可以执行该命令修复
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
参考:http://bbs.csdn.net/topics/390662731?page=1#post-396281623
vim /etc/csf/csf.conf PORTFLOOD = "22;tcp;5;300,80;tcp;20;5" /etc/init.d/csf start
解释:
1),如果300秒内有5个以上连接到tcp端口22的连接,则至少在发现最后一个数据包300秒后阻止该IP地址访问端口22,即在该阻止被取消前有300秒的"安静" 期。
2), 如果5秒内有20个以上连接到tcp端口80的连接,则至少在发现最后一个数据包5秒后阻止该IP地址访问端口80,即在该阻止被取消前有5秒的"安静" 期。
给我感觉是,csf不光有一面墙,墙后面,还有一张网,动态防御。感觉这一点做的比较好。
参考: http://blog.51yip.com/server/1503.html
百度、谷歌网站统计可以设置不显示网站统计,但站长统计等就不能了。
如果觉得比较难看,可以把统计代码输出内容隐藏掉,一个很简单的css样式就可以做到。
这不影响统计功能。
<span style="display:none">统计代码</span>
html 标签内容
<div id="navigation"> <ul> <li><a href="index.html">Home</a></li> <li><a href="about.html">About</a></li> <li><a href="photos.html">Photos</a></li> <li><a href="live.html">Live</a></li> <li><a href="contact.html">Contact</a></li> </ul> </div>
JavaScript 代码
function highlightPage() { if (!document.getElementsByTagName) return false; if (!document.getElementById) return false; if (!document.getElementById("navigation")) return false; var nav = document.getElementById("navigation"); var links = nav.getElementsByTagName("a"); for (var i=0; i<links.length; i++) { var linkurl = links[i].getAttribute("href"); var currenturl = window.location.href; if (currenturl.indexOf(linkurl) != -1) { links[i].className = "here"; var linktext = links[i].lastChild.nodeValue.toLowerCase(); document.body.setAttribute("id",linktext); } } }
这里介绍PHP的判断方法,实际应用中应考虑客户端运行环境,如果能用js,尽量用js实现。
操作IsURLCurrentPage()将判断按钮URL是否指向当前页面。这里使用strpos(),它可以查看给定的URL是否包含在服务器设置的变量中。strpos($_SERVER['PHP_SELF'], $url )语句将返回一个数字(如果$url中的字符串包含在全局变量$_SERVER['PHP_SELF'])或者false(如没有包含在全局变量中)。
<?php class Page { //class Page's attributes public $buttons = array("首页" => "index.php", "虚拟主机" => "plans.php", "合作加盟" => "aff.php", "域名注册" => "domains.php", "常见问题" => "faq.php", "关于我们" => "about.php", "客户中心" => "#" ); //class Page's operations public function DisplayMent($buttons) { echo "<ul class=\"nav nav-pills pull-right\">\n"; while (list($name, $url) = each($buttons)) { $this->DisplayButton($name, $url, !$this->IsURLCurrentPage($url)); } echo "</ul>\n"; } public function IsURLCurrentPage($url) { if(strpos($_SERVER['PHP_SELF'], $url )==false) { return false; } else { return true; } } public function DisplayButton($name, $url, $active = true) { if ($active) { echo "<li><a href=\"".$url."\">".$name."</a></li>\n"; } else { echo "<li class=\"active\"><a href=\"#\">".$name."</a></li>\n"; } } } ?>