4、 mysqld 起来了,却无法登录,提示\不存在 这种情况大多数是因为你的 mysql 是使用 rpm 方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件, 通过 unix socket 登录 mysql。 常见解决办法如下:
1)创建/修改文件 /etc/my.cnf,至少增加/修改一行 [mysql] [client]
socket = /tmp/mysql.sock
#在这里写上你的 mysql.sock 的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下 2)指定 IP地址,使用 tcp 方式连接mysql,而不使用本地 sock 方式 #mysql -h127.0.0.1 -uuser -ppassword
3)为 mysql.sock 加个连接,比如说实际的 mysql.sock 在 /tmp/ 下,则 # ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可 5、 导出数据的几种常用方法 1)使用 mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql 详细的参数 2)backup to语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory'; 详细请查看 mysql 手册 3)mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory] 或
#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory 或 #mysqlhotcopy db_name./regex/ 详细请查看 mysql 手册 4)select into outfile 详细请查看 mysql 手册 5)客户端命令行
#mysql -uuser -ppassword -e \ 以上各种方法中,以 mysqldump 最常用 6、 如何在命令行上执行 sql 语句
#mysql -uuser -ppassword -e \7、 导入备份出来文件的常见方法 1)由 mysqldump 出来的文件
#mysql -uuser -ppassword [database] < dump.sql 2)文件类型同上,使用 source 语法 mysql>source /path_to_file/dump.sql; 3)按照一定格式存储的文本文件或 csv 等文件 #mysqlimport [options] database file1 [file2....] 详细请查看 mysql 手册
4)文件类型同上,也可以使用 load data 语法导入 详细请查看 mysql 手册
4、过滤掉#号打头的行,和所有的空行(对于查看配置文档很有用) awk '/^[^#]/&&/^[^$]/' filename > new.file 7.删除文件大小为零的文件 rm -i `find ./ -size 0`
find ./ -size 0 -exec rm {} ; find ./ -size |xargs rm -f &非常有效 for file in * #自己定义需要删除的文件类型 do
if [ ! -s ${file} ] then rm ${file}
echo \ fi done
8.利用现存两个文件,生成一个新的文件 1) 取出两个文件的并集(重复的行只保留一份)
2) 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3) 删除交集,留下其他的行 A cat file1 file2 | sort | uniq B cat file1 file2 | sort | uniq -d C cat file1 file2 | sort | uniq -u 6、更改字符集
网站因为迁移改变了原有的字符集,导致前台看到乱码。如果是少数的几个页可以直接拿到本地用Editplus或者UltraEdit进行另存为时选择字符编码。现在有一个不用拿到本地的方法,在Linux机器上就能进行。 conv -f
26.如果SWAP(交换空间)不够了,要增加怎么办?只要你的硬盘上有空闲的空间,直接用命令:mkswape/dev/hda(假设你的驱动器是/dev/hda),swapon/dev/hda;要自动启动SWAPE,可以把新的分区加到/etc/fstab中去,照着原来SWAP的写就行了。用“free” 检查 你SWAP的大小,Linux支持最多16个交换分区,每个交换分区最大128MB,没有空闲分区的时候,可以用个大文件来建立,用命令“man mkswap”查看帮助。 # dd if=/dev/zero of=swapfile bs=1024 count=8192 # mkswap swapfile 8192 # sync
# swapon swapfile 27、一次解压多个.tar.gz文件
find ./ -name '*.tar.gz' -exec tar zxvf {} ; -print
Linux 命令 一句话(经典实用)
1.删除0字节文件
find -type f -size 0 -exec rm -rf {} \\; 2.查看进程 按内存从大到小排列
ps -e -o \3.按cpu利用率从大到小排列
ps -e -o \4.打印说cache里的URL
grep -r -a jpg /data/cache/* | strings | grep \5.查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
6. sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config sed在这个文里Root的一行,匹配Root一行,将no替换成yes. 7.1.如何杀掉mysql进程:
ps aux|grep mysql|grep -v grep|awk '{print $2}'|xargs kill -9 (从中了解到awk的用途) pgrep mysql |xargs kill -9 [网友:&FROST] killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid` 试试查杀进程PID 8.显示运行3级别开启的服务:
ls /etc/rc3.d/S* |cut -c 15- (从中了解到cut的用途,截取数据) 9.如何在编写SHELL显示多个信息,用EOF cat << EOF
+--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF
10. for 的巧用(如给mysql建软链接) cd /usr/local/mysql/bin for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i done
11. 取IP地址:
ifconfig eth0 |grep \或者
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}' 12.内存的大小:
free -m |grep \13.
netstat -an -t | grep \14.查看Apache的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦.
find / -name *.jpg -exec wc -c {} \\;|awk '{print $1}'|awk '{a+=$1}END{print a}'
CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
16 CPU负载 # cat /proc/loadavg
检查前三个输出值是否超过了系统逻辑CPU的4倍。 18 CPU负载 #mpstat 1 1 检查%idle是否过低(比如小于5%) 19 内存空间 # free
检查free值是否过低 也可以用 # cat /proc/meminfo 20 swap空间 # free
检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁: # vmstat 1 5
观察si和so值是否较大 21 磁盘空间 # df -h
检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录: # du -cks * | sort -rn | head -n 10
22 磁盘I/O负载 # iostat -x 1 2 检查I/O使用率(%util)是否超过100% 23 网络负载 # sar -n DEV
检查网络流量(rxbyt/s, txbyt/s)是否过高 24 网络错误 # netstat -i
检查是否有网络错误(drop fifo colls carrier) 也可以用命令:# cat /proc/net/dev
25 网络连接数目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n 26 进程总数 # ps aux | wc -l 检查进程个数是否正常 (比如超过250) 27 可运行进程数目 # vmwtat 1 5
列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍 28 进程 # top -id 1 观察是否有异常进程出现
29 网络状态 检查DNS, 网关等是否可以正常连通 30 用户 # who | wc -l
检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime 31 系统日志 # cat /var/log/rflogview/*errors
检查是否有异常错误记录 也可以搜寻一些异常关键字,例如: # grep -i error /var/log/messages # grep -i fail /var/log/messages
# egrep -i 'error|warn' /var/log/messages 查看系统异常 32 核心日志 # dmesg 检查是否有异常错误记录 33 系统时间 # date 检查系统时间是否正确
34 打开文件数目 # lsof | wc -l 检查打开文件总数是否过多
35 日志 # logwatch –print 配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务 (sendmail或者postfix),这样就可以每天收到日志报告了。
缺省logwatch只报告昨天的日志,可以用# logwatch –print –range all 获得所有的日志分析结果。 可以用# logwatch –print –detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。 36.杀掉80端口相关的进程
lsof -i :80|grep -v \37.清除僵死进程。
ps -eal | awk '{ if ($2 == \38.tcpdump 抓包 ,用来防止80端口被人攻击时可以分析数据 # tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
39.然后检查IP的重复数 并从小到大排序 注意 \中间是两个空格
# less pkts | awk {'printf $3\40.查看有多少个活动的php-cgi进程
netstat -anp | grep php-cgi | grep ^tcp | wc -l 41.利用iptables对应简单攻击
netstat -an | grep -v LISTEN | awk ?{print $5}? |grep -v 127.0.0.1|grep -v 本机ip|sed “s/::ffff://g”|awk ?BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num>8) { print i} }’ |grep
?[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}?| xargs -i[] iptables -I INPUT -s [] -j DROP Num>8部分设定值为阀值,这条句子会自动将netstat -an 中查到的来自同一IP的超过一定量的连接的列入禁止范围。 基中本机ip改成你的服务器的ip地址
1. 去5次cpu的平均值
/usr/bin/top n 5 d 1 b -p 1 | awk '{ if ($1 == \1 ) cpu+=$1;} END{print cpu/( NR -1 )}' 2. 文本中相同数据只输出一条 sort filename | uniq 3. 不须交互更改用户密码
echo \4.字符集转换(gb2312转换成utf-8) iconv -f GB2312 -t UTF-8 filename 5. 取关键字上一行
cat 1.lst | awk '{if ($1 == \6.find移动文件
find . -name \是需要移动的目录 find . -name \
Linux常用命令集合
摘要:本文收集Linux下常用的命令,对Linux尚不十分熟悉的朋友可以留作参考。 名称:cat
使用权限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案) 参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 --show-nonprinting 范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 名称 : cd
使用权限 : 所有使用者 使用方式 : cd [dirName]
说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。
另外,\也表示为 home directory 的意思,\则是表示目前所在的目录,\则表示目前目录位置的上一层目录。 范例 : 跳到 /usr/bin/ : cd /usr/bin
跳到自己的 home directory : cd ~
跳到目前目录的上上两层 : cd ../..
指令名称 : chmod 使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...