linux操作备份

----------------------------------------------------------------------------------------------------------
杀掉匹配到hello的所有进程,使用下面这个命令就能直接实现。

ps -ef |grep hello |awk '{print $2}'|xargs kill -9


mysqlbinlog日志导到文件查看,要先导入到文件,否则的话就是直接恢复了

mysqlbinlog --start-datetime='2013-09-10 23:00:00' --stop-datetime='2013-09-10 23:30:00' mysql-bin.000001 > t.binlog
---------------------------------------------------------------------------------------------------------

使用tar打包一个目录时,去掉其中的几个子目录
tar cvfz chenxu.tar.gz dir --exclude dir/dir1 -–exclude dir/dir2/dir3

查看目录下文件大小
du -sh ./*

-------------------------------------------------------------------------------------------------------
find命令不会失败:

查找文件:
find ./ -name '*' -type f -exec chmod 777 {} \;
查找目录:
find ./ -name '*' -type d -exec chmod 777 {} \;

-mindepth 最小递归深度
-maxdepth 最大递归深度

对当前目录下的一级子目录执行命令:

find ./ -type d -name '*' -maxdepth 1 -mindepth 1 -exec chmod 777 {} \;

--------------------------------------------------------------------------------------
1.dirr -r dir1 dir2

移动文件到网站目录:
\cp -rf 12371/* /data/www/www.12371.cn/


让其不提示确认信息
\cp -rf commentsystem/* /data/www/bbs.cntv.cn/customavatars/commentsystem/

 

查看某个目录占用空间大小:
du -hs /etc/

统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l


统计当前文件夹下目录的个数
ls -l |grep "^d"|wc -l

------------------------------------------------------------------------------------
nginx 目录中的off文件增大原因
在 Nginx 的根目录,有个 off 的文件!(有的是 on)!

注意error_log off并不能关闭日志记录功能,它将日志文件写入一个文件名为off的文件中,
如果你想关闭错误日志记录功能,应使用以下配置:

error_log /dev/null crit;

-----------------------------------------------------------------------------------
各种重启:

76测试机上redis重启:
/usr/bin/redis-server > /dev/null &


76测试机上memcached启动:
/usr/local/memcached/bin/memcached -p 11211 -m 512 -u root -d

10.72.5.13上这样启动的有问题:
/usr/local/bin/memcached -u daemon -d -m 8 -c 256 -l 127.0.0.1 -p 11211 -P /tmp/memcached.pid
产生的问题是连接被拒绝

/usr/local/bin/memcached -p 11211 -m 512 -u root -d


php-fpm 重启:
/usr/local/php/sbin/php-fpm reload(start|stop)
/etc/init.d/php-fpm {start|stop|force-quit|restart|reload}

76测试机上nginx重启
sudo /usr/local/nginx/sbin/nginx -s reload


根目录用满的问题
/usr/local/nginx/off 文件巨大 删除了,并重启nginx


修改nginx虚拟主机配置
sudo vi /usr/local/nginx/conf/vhosts/bbs.cntv.cn

location ~ ^/html/passport/(threads)\.(htm)$ {
include fastcgi_params;
fastcgi_pass unix:/dev/shm/php-fcgi.sock;
error_page 404 500 502 503 504 http://bbs.cntv.cn/html/passport/threads_back.htm;
}


76测试机上的nginx的启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

查看nginx是否启动:
ps -A | grep nginx

查看mysql是否启动
ps -A | grep mysql

启动mysql sudo 为root /etc/init.d/mysql start


/bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/ --pid-file=/data/mysql/bbs.cntv.cn.pid
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/ --user=mysql --log-error=/data/tmp/mysql_error.log --pid-file=/data/mysql//bbs.cntv.cn.pid --socket=/tmp/mysql.sock --port=3306

 

mount -t nfs -o nolock 192.168.112.161:/log/dztest /data/mysql


$ df -Th
#查看分区磁盘使用情况(看分区是否存在)。

$ cat /etc/mtab
#已挂载分区情况。


/usr/sbin/showmount -a


mount说明链接:
http://www.oschina.net/question/17_633


问题描述:地址已被使用。可能nginx服务卡死了,导致端口占用,出现此错误。

解决方法:首先用lsof -i:80 看下80端口被什么程序占用。lsof返回结果如下:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 3274 root 6u IPv4 10664 0t0 TCP *:http (LISTEN)
nginx 3547 nginx 6u IPv4 10664 0t0 TCP *:http (LISTEN)

发现是nginx程序,所以我们把nginx服务k掉,重新启动服务。。命令如下:

kill -9 3274

kill -9 3547

service nginx start

Starting nginx: [ OK ]

OK了,服务成功启动!~~


安装lsof:
yum -y install lsof


test3上apache重启:
/usr/local/apache/bin/httpd -k start
/etc/init.d/httpd restart


查看memcached状态:
进入安装目录,启动memcached:/usr/local/memcached/bin/memcached -d -c 10240 -m 1024 -u root
获取运行状态:echo stats | nc localhost 11211(可以查看出pid) 或使用ps -ef|grep memcached
停止memcached:kill -9 pid (-9表示强制杀死,pid 为进程的进程标识符)


线上重启memcache:
ps aux | grep memcache
kill 1769
/usr/local/memcached/bin/memcached -d -p 11211 -u root -c 2560 -m 2048

/usr/local/memcached/bin/memcached -d -p 11212 -u root -c 2560 -m 1024

重启memcache:
service memcached restart

history | grep memcache

查看mysql状态
/etc/rc.d/init.d/mysqld status 看看mysql是否已经启动.

service mysqld start
service mysqld status
service mysqld stop

-----------------------------------------------------------------------------------------
mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
这会输出记录次数最多的10条SQL语句,其中:

-s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
-t, 是top n的意思,即为返回前面多少条的数据;
-g, 后边可以写一个正则匹配模式,大小写不敏感的;
比如
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回记录集最多的10个查询。
/path/mysqldumpslow -s t -t 10 -g "left join" /database/mysql/slow-log
得到按照时间排序的前10条里面含有左连接的查询语句。

log文件太大的话,导其中一部分到某个文件
tail -n 10 slow.log|tee -a test.log

 

试试这个吧,1压缩比最小,9压缩比最大
引用:
tar -c dbfolder | gzip -1 > bak.tgz

-----------------------------------------------------------------------------------------------
加载顺序是:
/etc/my.cnf
/etc/mysql/my.cnf
/u01/mysql/etc/my.cnf
/u01/mysql/my.cnf
~/.my.cnf

参数重复时以后加载的为准


2、启动
来检测mysql是否已经启动
service mysqld status

我们可以用三种方法来启动Mysql:
方法一:使用service命令来
启动Mysql
service mysqld start
停止mysql
service mysqld stop
方法二:使用mysqld脚本来启动Mysql:
/etc/init.d/mysql start
方法三:使用safe_mysqld实用程序启动Mysql服务,此方法可以使用相关参数
safe_mysqld& //使用&表示将safe_mysqld放在后台执行。


在mysql安装目录下执行:
./bin/mysqld_safe --skip-grant-tables &
flush privileges;

------------------------------------------------------------------------------
查看出口ip 在服务器上发送请求到baidu服务器并跟踪
traceroute www.baidu.com
----------------------------------------------------------------------------

0 slave能自动继续同步
1 在slave上检查下同步的执行状态:
show slave status\G
看其中的slave_io_running和slave_sql_running的状态是否yes,不是的话则出错了。

由于压力过大slave停止的话, mysql命令:start slave; 就行了。


当在命令行连接mysql(mysql -u root -p)时:出现该错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
带上路径再连接mysql就好了:
/usr/local/mysql/bin/mysql -u root -p;


如何登录其他端口:
/usr/local/mysql/bin/mysql -u root -p -h127.0.0.1 -P3307

---------------------------------------------------------------------------------------
mysql修改root密码:
shell命令行下:mysqladmin -u root -p[oldpassword] password newpassword


命令行输:msyql -u root回车进入mysql
然后输入命令:update mysql.user set password= PASSWORD('新密码') where user = 'root';
即可

-------------------------------------------------------------------------
mysql 导入sql:
mysql>source d:\datafilename.sql
-----------------------------------------------------------------------------------------

echo "use dx25 ;set names utf8;SELECT t2.uid, t2.username,t2.PASSWORD,t2.salt,t2.email FROM pre_common_member t1 LEFT JOIN pre_ucenter_members t2 ON t1.uid = t2.uid WHERE t1.STATUS='0' AND t1.groupid != '8' ORDER BY t2.uid LIMIT 99999999999999;" | mysql -u root -p -S /tmp/mysql3307.sock > /tmp/1225.sql


从远程数据库导出数据:只给了查询的权限

mysql -h10.64.2.59 -ucomment2013 -p9cNN3_bV8c-a7 -e "select * from audit_system.cmt_member;" > /dongruiha2/test


4.导入数据库

常用source 命令
进入mysql数据库控制台,
d:/program files/mysql/mysql server 5.1/bin > mysql -u root -p
d:/program files/mysql/mysql server 5.1/bin > mysql>use '数据库'
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
d:/program files/mysql/mysql server 5.1/bin > mysql>source d:wcnc_db.sql


5.远程导出数据库

命令如下:
mysqldump -h 192.168.11.210 -u root -p test>c:/test.sql

--------------------------------------------------------------------------------------

批量替换配置文件

sed -i "s@/(shaoer)/@/(shaoer|ent)/@g" /usr/local/nginx/conf/vhosts/blog.cntv.cn && sed -i "s@module\=\$1&method\=\$3@module\=\$2\&method\=\$4@g" /usr/local/nginx/conf/vhosts/blog.cntv.cn

--------------------------------------------------------------------------------------

On Unix, Linux and Mac OS X, MySQL programs read startup options from the following files,
in the specified order (top items are used first).

File Name Purpose
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options
SYSCONFDIR/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options
defaults-extra-file The file specified with --defaults-extra-file=path, if any
~/.my.cnf User-specific options


读取顺序为:
/etc/my.cnf
basedir/my.cnf
datadir/my.cnf
--defaults-extra-file #在读取全局配置文件之后,读取用户配置文件(~/.my.cnf)之前,读取extra指定的参数文件
~/.my.cnf #家目录下面的隐藏文件,my.cnf前面的点,说明my.cnf是隐藏文件
假设4个配置文件都存在,同时使用--defaults-extra-file指定了参数文件,
如果这时有一个 "参数变量"在5个配置文件中都出现了,
那么后面的配置文件中的参数变量值会覆盖前面配置文件中的参数变量值,
就是说会使用~/.my.cnf中设置的值。

*****注意*****
如果使用./bin/mysqld_safe 守护进程启动mysql数据库时,
使用了 --defaults-file=<配置文件的绝对路径>参数,这时只会使用这个参数指定的配置文件。

----------------------------------------------------------------------------------------------

 

posted on 2017-09-27 09:55  dongruiha  阅读(222)  评论(0编辑  收藏  举报

导航