lnmp架构下常用维护命令

校对

> md5sum manpages-zh-1.5.1.tar.gz # 生成文件的md5值

打包 & 解压

> # zip
> zip -r test.zip /path/to/here # 打包,-r表示递归
> unzip -o -d /home/sunny myfile.zip # 解压,-o直接覆盖,不提示,-d,指定解压到的目录路径
> unzip test.zip -d /root # 解压到指定目录
> zip -m myfile.zip ./rpm_info.txt # 向压缩文件追加文件
> # tar
> tar -czvf blog-`date +%F`.tar.gz /path/to/here # 打包目录
> tar -czvf tmp.tgz tmp --exclude= # 打包时排除目录或文件
> tar -xzvf test.tar.gz # 解压到当前目录

数据库

备份 & 还原

> # 备份,注意--events --ignore-table=mysql.event
> mysqldump -h 127.0.0.1 -u root -p test > test-`date +%F-%H-%M-%S`.sql   #备份test数据库,如此备份不会备份events,需添加--events即可
> mysqldump -h 127.0.0.1 -u root -p --master-data=1 --events --lock-all-tables --flush-logs --all-databases > mysql-`date +%F-%H-%M-%S`.sql  # 完全备份整个数据库服务器,
> # 导入[还原]
> myql -h 127.0.0.1 -uroot -p -e "CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" # 直接使用命令创建数据库
> mysql -h 127.0.0.1 -uroot -p test < test.sql # 导入数据库

状态

> 

刷新

# 清空缓存的方法主要用flush命令 为了执行FLUSH,你必须有reload权限。
> flush hosts 主要是用来清空主机缓存表。如果你的某些主机改变IP数字,或如果你得到错误消息Host … isblocked,你应该清空主机表。当在连接MySQL服务器时,对一台给定的主机有多于 max_connect_errors个错误连续不断地发生,MySQL为了安全的需要将会阻止该主机进一步的连接请求。清空主机表允许主机再尝试连接。
> flush logs  主要是关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。
> flush privileges 主要是每当重新赋权后,为了以防万一,让新权限立即生效,一般都执行一把,目地是从数据库授权表中重新装载权限到缓存中。
> flush tables 主要是关闭所有打开的表,同时该操作将会清空查询缓存中的内容。
> flush tables with read lock 主要是关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。
> flush status 重置大多数状态变量到0。
> flush master 删除所有的二进制日志索引文件中的二进制日志文件,重置二进制日志文件的索引文件为空,创建一个新的二进制日志文件,不过这个已经不推荐使用,改成reset master 了。可以想象,以前自己是多土啊,本来一条简单的命令就可以搞定的,却要好几条命令来,以前的做法是先查出来当前的二进制日志文件名,再用purge 操作。
> flush query cache 重整查询缓存,消除其中的碎片,提高性能,但是并不影响查询缓存中现有的数据,这点和Flush table 和Reset Query  Cache(将会清空查询缓存的内容)不一样的。
> flush slave  类似于重置复制吧,让从数据库忘记主数据库的复制位置,同时也会删除已经下载下来的relay log,与Master一样,已经不推荐使用,改成Reset Slave了。

参考:
http://www.phpac.com/618.html

服务器

硬件信息

> grep -c 'model name' /proc/cpuinfo # 查看cpu核心数
> grep 'model name' /proc/cpuinfo | wc -l # 同上

软件信息

> cat /etc/issue # 查看发行版
> cat /etc/redhat-release # 查看发行版版本
> lsb_release -a # 同上
> uname -r # 查看内核版本

状态

> top # 动态查看服务器综合情况
> w # 查看负载
> uptime # 查看负载及启动时间
> ps aux # 查看运行的进程
> ps aux -sort -pcpu | more # 按 cpu 排序
> ps aux -sort -rss | more # 按内存使用排序
> ssh user@host 'ps ax | grep [h]ttpd' # 远程查看httpd是否运行

参考:
http://www.cnblogs.com/rollenholt/p/4057603.html
http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html

文件操作

> # 远程复制
> # 参数说明:-r 递归; -p: 保留原文件的修改时间,访问时间和访问权限
> scp -rp /opt/soft/mongodb [email protected]:/opt/soft/scptest # 将本地目录下的文件递归复制到远程
> scp -rp [email protected]:/opt/soft/mongodb /opt/soft/ # 将远程文件递归复制到本地
> cd && tar czv src | ssh user@host 'tar xz' # 通过压缩的方式将$HOME/src/目录下面的所有文件复制到远程主机的$HOME/src/目录
> ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub # 读取本地文件内容追加到远程服务器上的指定文件
> ssh user@host 'tar cz src' | tar xzv # 将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。
> # 远程登录
> ssh-keygen # 在本地生成公钥&私钥
> ssh-copy-id user@host # 将公钥添加到服务器~/.ssh/authorized_keys文件,以实现免密码登录
> ssh [email protected] 

参考:
http://www.cnblogs.com/peida/archive/2013/03/15/2960802.html
https://linux.die.net/man/1/scp
http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html

磁盘管理

> du -sh // 当前目录的大小
> du -h --max-depth=1 // 显示当前目录及子目录的大小
> df -h // 磁盘占用情况

开机启动

sudo vi /etc/rc.local # 方法1:在rc.local文件末尾添加启动命令
ln -s /test /etc/init.d/test # 方法2:创建服务test的软链接
sudo chmod 755 /test # 更改服务test的权限
cd /etc/init.d # 切换到init.d文件夹
sudo update-rc.d test defaults 95 # 95为启动顺序

统计

# 统计502在文件a.txt中出现的次数
cat a.txt |awk '{print "line:"NR " status:"$9}'|grep 502
# 查看当前PHP FastCGI进程数
netstat -anpo | grep "php-cgi" | wc -l # 如果此值接近预设值,说明“FastCGI进程数”不够用,需要增大

其它

> nohup bash hello.sh & # 将脚本程序放到后台持续执行

参考:
http://www.jb51.net/os/Ubuntu/181138.html

待续....

你可能感兴趣的:(lnmp架构下常用维护命令)