##################操作系统####################################
#############杀死僵尸进程
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
查看TCP 并发
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)
状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
查看IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
用tcpdump嗅探80端口的访问看看谁最高
查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
找出使用CPU最多的前10名进程
ps -auxf | sort -nr -k 3 | head -10
查看僵死进程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
看CPU 核数,查看内核,查看位数
grep 'model name' /proc/cpuinfo | wc -l
uname -a
查看端口运行什么程序
netstat -apn lsof -i:818 (端口)
硬盘IO
iostat -x 1 10
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
同时可以结合vmstat 查看查看b参数 (等待资源的进程数 )和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高 )
查看性能
dstat -d -r --top-io
批量修改密码(使用批量管理工具加下面命令)
echo password | passwd --stdin root
认情况下分五个区域:
1、 --total-cpu-usage---- CPU使用率
usr:用户空间的程序所占百分比;
sys:系统空间程序所占百分比;
idel:空闲百分比;
wai:等待磁盘I/O所消耗的百分比;
hiq:硬中断次数;
siq:软中断次数;
2、 -dsk/total- 磁盘统计
read:读总数
writ:写总数
3、 -net/total- 网络统计
recv:网络收包总数
send:网络发包总数
4、 ---paging-- 内存分页统计
in: pagein(换入)
out:page out(换出)
#### 更改时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者直接tzselect
#####安装依赖报错so 解决方法
yum provides */libiconv.so.2
yum provides */libboost_system.so
####
LINUX 下查看温度及风扇转速
Linux 下如何查看自己本本的 CPU 和 GPU 的温度及 Fan(风扇) 的转速操作如下:
1、安装 lm_sensors 软件包 (如果已安装了此软件了,1和2步都跳过吧):
yum install lm_sensors (CentOS)
或
apt-get install lm_sensors (Ubuntu)
2、手动配置下(一路yes或enter就行了):
sensors-detect
3、最后打开终端输入(需要root权限执行,如果不是root,需要使用sudo):
sensors
这样就输出各传感器的温度及风扇转速了
##################文件处理######################################文件处理######################################文件处理####################
grep 查找替换
sed -i s/"rdbcompression yes"/"rdbcompression no"/g `grep "rdbcompression yes" -rl --include="*.conf" ./`
sed -i s/"appendonly yes"/"appendonly no"/g `grep "appendonly yes" -rl --include="*.conf" ./`
查找当前目录下最大的文件夹
du --max-depth=1
####find 查找打包
tar -zcvf test.tar.gz `find /data/webdir/hiweb3.comdocs -mtime -3 -print`
##打包排除目录
tar -czvf mm.tgz xxx/ --exclude xxx/tt --exclude xxx/ppp
查看目录下小排序
du -sh /usr/www/* | sort -nr
复制目录下大于5MB的东西
/bin/cp `find /root -size +5M` /root/abc929/
复制目录下大于5MB小于10MB的东西
/bin/cp `find /root -size +5M -size -10M` /root/abc929/
删除文件大小为0的
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
这个还可以删除指定大小的文件,只要修改对应的 -size 参数就行,例如:
find . -name "*" -type f -size 1024c | xargs -n 1 rm -f
此命令在/tem/下建立一个名为test的1g的文件
dd if=/dev/zero of=/tem/test bs=1M count=1024
挂载内存到目录
mount -t tmpfs -o size=100G tmpfs /data
强制卸载mount nfs
fuser -cu /mnt #其次向进程发出SIGKILL信号
fuser -ck /mnt #确认
fuser -c /mnt
umount /mnt
##################nginx#########################################nginx#######################################nginx#####################
查看80端口连接数最多的20个IP
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20
查看Web服务器进程连接数:
netstat -antp | grep 80 | grep ESTABLISHED -c
日志分析
#分析各个状态的数量
cat access.log |awk '{print $9}'|sort|uniq -c|sort -nr
#分析500的有多少
cat access.log |awk '{if ($9=500){print $7}}'|sort|uniq -c|sort -nr|head
#分析ip
cat access.log |awk '{print $1}'|sort|uniq -c
#分析pv
cat access.log|wc -l
#分析各个页面的点击数
cat access.log |awk '{print $7}'|sort|uniq -c|sort -nr
cat access.log |awk '{print $7}'|sort|uniq -c|sort -nr|head #(前十名的)
####nginx 错误页面指定
error_page 404 = http://www.test.cn;
error_page 403 = http://www.test.cn;
##########nginx 页面跳转
rewrite ^(.*)$ /$1 break;
##################php#########################################PHP#######################################PHP#####################
netstat -anpo | grep "php-cgi" | wc -l
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
PHP 优化
1netstat -anpo | grep "php-cgi" | wc -l 查看phpcgi进程数,如果接近预设值,说明不够用,需要增加
2:禁用危险的php函数
disable_functions = exec,scandir,shell_exec,phpinfo,eval,passthru,system,chroot,chgrp,chown,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket
##################mysql数据库优化#######################################
1.复制表结构及数据到新表
CREATE TABLE 新表
SELECT * FROM 旧表
2.只复制表结构到新表
CREATE TABLE 新表
SELECT * FROM 旧表 WHERE 1=2
#################
在线查询哪些SQL 查询慢的
use information_schema;
select db,command,time,state,info from `PROCESSLIST` where command <>'Sleep';
SHOW STATUS; (服务器状态变量,运行服务器的统计和状态指标)
SHOW VARIABLES;(服务器系统变量,实际上使用的变量的值)
或者
mysql>SHOW STATUS LIKE '%变量名% ' ;
########最完整的信息
mysqladmin -uroot -ppassword variables extended-status
root 授权
GRANT ALL PRIVILEGES ON *.* TO 'root’@‘1.1.1.1’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
新建用户
insert into mysql.user(Host,User,Password) values("%","web",password("ailinux.net”));
授权phplamp用户拥有phplamp数据库的所有权限。
grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
授权
grant all privileges on testDB.* to test@localhost identified by '1234';
GRANT SELECT , INSERT , UPDATE , DELETE ON `abc\_ww` . * TO ‘ww’@‘localhost';
GRANT GRANT OPTION ON *.* TO 'root'@'%';
刷新表权限
flush privileges;
备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库
mysqldump --all-databases -h127.0.0.1 -uroot -ppass > allbackupfile.sql
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库
backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
GRANT GRANT OPTION ON *.* TO 'root'@'%';
Mysql删除空用户。
DELETE FROM user WHERE User="phplamp" and Host="localhost";
delete from mysql.user where user=''; ← 删除匿名用户
flush privileges;
更新用户密码
update mysql.user set password=password(‘aiLinux.net’) where User="phplamp" and Host="localhost";
将MySQL设置为只读状态的命令:
# mysql -uroot -p
mysql> show global variables like "%read_only%";
flush tables with read lock;
set global read_only=1;
flush privileges;
mysql> show global variables like "%read_only%";
将MySQL从只读设置为读写状态的命令:
unlock tables;
set global read_only=0;
flush privileges;
#####
##对比主从数据的一致性工具
工具安装方法
RHEL7/CentOS7/Oracle linux7:
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
RHEL6/CentOS6/Oracle linux6:
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
RHEL5/CentOS5/Oracle linux5:
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el5-5.noarch.rpm
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el5-5.noarch.rpm
yum -y install mysql-util*
mysqldbcompare --server1=root:ailinux.net@1.1.1.1:33211 --server2=root:ailinux.net@localhost:3309 yiitest -a --difftype=SQL --show-reverse --quiet
检查所有数据库
#/usr/local/mysql02/bin/mysqlcheck --all-databases -uroot -p123456
##动态开起慢查询
set global slow_query_log=1;
set global long_query_time=2;
set global slow_query_log_file='mysql-slow.log';
##动态关闭慢查询
set global slow_query_log=0;
开关全局日志
set global general_log=on; 开起
set global general_log=off; 关闭
查看MySQL进程连接数:
ps -axef | grep mysqld -c
检查索引效率查询
show status like "Handler_read%";
Handler_read_key 值高表示索引效果好,Handler_read_rnd_next值高表示索引低效。
主从配置
GRANT REPLICATION SLAVE ON*.*TO'rsync'@'%'IDENTIFIED BY 'ailinux.net';
传统模式
CHANGE MASTER TO MASTER_HOST='192.168.8.211',MASTER_USER='rsync',MASTER_PASSWORD='ailinux.net',MASTER_PORT=3306,MASTER_LOG_FILE='abcd-bin.000005',MASTER_LOG_POS=120;
*************************** 1. row ***************************
File: abcd-bin.014604
Position: 185866396
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
GTID模式
CHANGE MASTER TO MASTER_HOST='1.1.1.1', MASTER_PORT=3306,MASTER_USER='rsync',MASTER_PASSWORD='ailinux.net',master_auto_position = 1;
mysqlreplicate --master=root:ailinux.net@1.1.1.1:3306 --slave=root:ailinux.net@172.16.8.211:3306 --rpl-user=abcd:ailinux.net -b
mysqlrplsync --master=root:ailinux.net@1.1.1.1:3306 --slave=root:ailinux.net@172.16.8.211:3306,rsync:ailinux.net@1.1.1.1:3306:3306
slave start
show slave status\G;
#解决存储苹果表情的问题
show variables like '%sql_mode%';
set global sql_mode = 'NO_ENGINE_SUBSTITUTION';
######innobackupex备份还原
innobackupex --defaults-file=/etc/my.cnf --user=root --password=ailinux.net --apply-log --use-memory=4G /home/20151217/2015-12-17_00-28-28
innobackupex --defaults-file=/etc/my.cnf --user=root --password=ailinux.net --copy-back /home/20151217/2015-12-17_00-28-28
设置从服务器为只读,避免用户在从服务器上修改数据:
SHOW VARIABLES LIKE ‘%read%’
SET GLOBAL read_only=on;
##########mysql集群自增长设置
show variables like '%increment%';
SET @@global.auto_increment_offset = 1;
set @@global.auto_increment_increment = 1;
###############mysql 查看事物锁死
SELECT * FROM information_schema.INNODB_TRX\G
###############查看innodb引擎状态
mysql -u root -p --execute="show engine innodb status \G" >/root/mysqlinnodb.log
show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50 |
[mysqld]
innodb_lock_wait_timeout=120
#####修改数据默认字符集
ALTER DATABASE abcd DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
############mysql 查询运行状态
mysqladmin -uroot -pailinux.net status -i 1
mysqladmin -uroot -pailinux.net --sleep 1 processlist
##################系统优化#######################################系统优化#######################################系统优化#######################################系统优化#####################
# vi /etc/sysctl.conf
底部添加
fs.file-max=65535
#vi /etc/security/limits.conf
加上
* soft nofile 65535
* hard nofile 65535
启动Nginx
ulimit -SHn 65535
#####linux 瓶颈找问题十大命令
通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。
uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
##################################系统优化_END
####################iptables 安全
下面的例子会阻止来自一个IP的60秒钟内超过15个连接端口80的连接数。
/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –set
/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –update –seconds 60 –hitcount 15 -j DROP
1:查找日子里面可疑关键字
find /www/ -name "*.php" |xargs egrep 'assert|phpspy|c99sh|milw0rm|eval|\(gunerpress|\(base64_decoolcode|spider_bc|shell_exec|passthru|\(\$\_\POST\[|eval \(str_rot13|\.chr\(|\$\{\"\_P|eval\(\$\_R|file_put_contents\(\.\*\$\_|
base64_decode'
2:查找php木马
grep -r --include=*.php '[^a-z]eval($_POST' . > post.txt
grep -r --include=*.php '[^a-z]eval($_REQUEST' . > REQUEST.txt
3:快速查找2天内呗修改的文件
find -mtime -2 -type f -name \*.php
##################################安全检查_END
##################shell#########################################shell#########################################shell#########################################shell#########################################shell#######################
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
如果只是显示/etc/passwd的账户
#cat /etc/passwd |awk -F ':' '{print $1}'
root
daemon
bin
sys
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
#cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'
root /bin/bash
daemon /bin/sh
bin /bin/sh
sys /bin/sh
#########AWK 参数介绍
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
##################################AWK_EDN
###########去取两个字符之间的内容
sed -n '/123493876/,/124149948/'p file
########################
sed '2d' example-----删除example文件的第二行。
sed '2,$d' example-----删除example文件的第二行到末尾所有行。
sed '$d' example-----删除example文件的最后一行。
sed '/test/'d example-----删除example文件所有包含test的行。
sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
sed -n 's/\(love\)able/\1rs/p' example-----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。
sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。
选定行的范围:逗号
sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打印。
$ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。
$ sed '/test/,/check/s/$/sed test/' example-----对于模板test和west之间的行,每行的末尾用字符串sed test替换。
多点编辑:e命令
$ sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令
的结
$ sed --expression='s/test/check/' --expression='/love/d' example-----一个比-e更好的命令是--expression。它能给sed表达式赋值。
从文件读入:r命令
$ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
写入文件:w命令
$ sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里。
追加命令:a命令
$ sed '/^test/a\\--->this is a example' example<-----'this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。
插入:i命令
如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。
下一个:n命令
$ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。
变形:y命令
$ sed '1,10y/abcde/ABCDE/' example-----把1--10行内所有abcde转变为大写,注意,正则表达式元字符不能使用这个命令。
退出:q命令
$ sed '10q' example-----打印完第10行后,退出sed。
保持和获取:h命令和G命令
$ sed -e '/test/h' -e '$G example-----在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。接着模式空间被清空,并存入新的一行等待处理。在这个例子里,匹配test
的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保 持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中 的行的末尾。在这个例子中就是追加
到最后一行。简单来说,任何包含test的行都被复制并追加到该文件的末尾。
保持和互换:h命令和x命令
$ sed -e '/test/h' -e '/check/x' example -----互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换。
7. 脚本
Sed脚本是一个sed的命令清单,启动Sed时以-f选项引导脚本文件名。Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头的行为注释行,且不能跨行。
sed -n '/140929 14:08/,/140929 14:10/'p
############sed 找替换
sed -i s/\/www\/web/\/data\/www\/web/g `grep \/www\/web -rl --include="*.conf" ./`
例如:我要把 charset=gb2312 替换为 charset=UTF-8,执行命令:
sed -i “s/charset=gb2312/charset=UTF-8/g” ‘grep charset=gb2312 -rl /www’ 即可。
##################################SED_END
#######git 实用命令
克隆库下来: git clone https://abc929:a312461613@git.oschina.net/abc929/abc929.git
添加 文件 git add file 或者 git add *
提交更改 git commit -am "update"
更新到新文件 git push origin
更新库到本地 git push
Command line instructions
Git global setup
git config --global user.name “三爷”
git config --global user.email “sanye@163.com"
Create a new repository
mkdir osyunwei
cd osyunwei
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin http://git.123213.cn/sanye/osyunwei.git
git push -u origin master
Push an existing Git repository
cd existing_git_repo
git remote add origin http://git.123213.cn/sanye/osyunwei.git
git push -u origin master
#####批量管理ansible常用命令详解
在ansible.cfg配置文件中,也会找到如下部分:
# uncomment this to disable SSH key host checking
host_key_checking = False
############三部完成ssh 免密钥登录
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub 6.6.6.3
ssh 6.6.6.3
OK
###############批量任务命令
#####添加自动任务 每三分钟执行一次
ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/bin/rdate -s time.nist.gov"'
#####批量执行命令
ansible web -m command -a 'date'
####批量重启服务
ansible web -m service -a 'name=nginxd state=restart'
####批量传文件
ansible web -m copy -a 'src=/tmp/localhost.conf dest=/usr/local/nginx/conf/vhost/'
####yum模块:
目的:在指定节点上安装 lrzsz 服务
命令:ansible all -m yum -a "state=present name=lrzsz"
####user模块:
目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户
命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'
执行命令:
####script模块:
目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)
命令:ansible 10.1.1.113 -m script -a '/root/a.sh'
####synchronize模块:
目的:将主控方/root/a目录推送到指定节点的/tmp目录下
命令:ansible 10.1.1.113 -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'
ansible web -m synchronize -a 'src=/shell/www/web dest=/www/ compress=yes'
执行效果:
delete=yes 使两边的内容一样(即以推送方为主)
compress=yes 开启压缩,默认为开启
--exclude=.Git 忽略同步.git结尾的文件
####ile模块:
目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root
命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
####user模块:
目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户
命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'
####
############zabbix 清理数据
这是比较实用的按照时间段删除历史数据,也有方法可以全部清除历史监控数据
zabbix清空历史记录mysql数据库操作:
mysql -uroot -p 输入mysql密码
use zabbix;
truncate table history;
optimize table history;
truncate table history_str;
optimize table history_str;
truncate table history_uint;
optimize table history_uint;
truncate table trends;
optimize table trends;
truncate table trends_uint;
optimize table trends_uint;
truncate table events;
optimize table events;
注意:此操作会清空zabbix所有历史监控数据,请操作之前备份好数据库!
发表评论