centos 踩坑集锦
定时任务
top 命令添加定时任务无效
我通过以下命令获取总进程数与僵尸进程数
vim procs.sh
procs_total=`/bin/top -n 1|grep Tasks|sed 's/,/\n/g'|grep total|awk '{ print $(NF-1) }'`
procs_zombie=`/bin/top -n 1|grep Tasks|sed 's/,/\n/g'|grep zombie|awk '{ print $(NF-1) }'`
echo $procs_total $procs_zombie > key.prom
手动执行没问题,加在crontab 定时任务中,就无效
因为:没有加-b参数,应该写成
/bin/top -b -n 1
-b 以批处理模式启动top,这对于将输出从top发送到其他程序或文件很有用。在此模式下,Top将不接受输入并在迭代之前运行使用`-n'命令行选项设置的限制或直到被杀死。
定时任务命令中不识别变量
定时任务这样添加无效:
* * * * * echo $(date +%Y%m%d) >> /var/log/testlog
不识别$()与 ,可尝试将命令写在文件file中,再在定时中source环境变量 bash file
通过/etc/crontab 添加定时
定时任务除了crontab -e的方式外,还可以通过直接编辑/etc/crontab添加
但是需要添加上执行用户,否则不生效。eg:
vim /etc/crontab
* * * * * root echo hello >> /tmp/hello
/etc/resolv.conf 总是重新恢复
此文件声明了此server用的DNS服务器,但在我修改之后它总是重新恢复,因为系统总是主动使用DHCP server传来的数据进行系统文件的修复。
解决方法:
在网卡配置添加,再重启网络服务
echo PEERDNS=no >> /etc/sysconfig/network-scripts/ifcfg-eno1677773
systemctl restart network
python
传文件
当你登上服务器 sudo su,但没有密码,用不了scp,lrzsz又麻烦,怎么传文件?用python
例如:我要传 192.168.2.1 /home/tom/log 文件到192.168.2.2
在192.168.2.1 :
cd /home/tom/
python -m SimpleHTTPServer 8099 #此端口随便开
在192.168.2.2 :
wget 10.2.14.75:8099/log
python2.7安装pip
python -V
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d
tar -xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
pip
rpm包网站
在这里总结两个rpm包的网站,方便日后寻找
http://rpm.pbone.net
http://rpmfind.net
axel并发下载
今天一个包下了一整天,没下下来,使用下载工具轻松解决
wget ftp://ftp.pbone.net/mirror/pkgs.repoforge.org/axel/axel-2.4-1.el6.rf.x86_64.rpm
rpm -ivh axel-2.4-1.el6.rf.x86_64.rpm
axel -n 10 https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm #10个并发下载grafana包
awk
awk '{print $(NF-1)}' file 打印空格分隔的倒数第二行
vim
替换行首的空格
:%s/^ *// %为全篇选中
替换行末的空格
:%s/ *$//
将换行符替换为空格
:%s/\n/ /
将空格替换为换行
:% s/ /\r/g
vi/vim 外部代码粘贴行首缩进问题
在vi/vim 外部代码粘贴经常出现每行行首缩进,格式改变问题
在拷贝前输入: set paste #只是单纯粘贴,行首不会自动缩进
拷贝完成后输入: set nopaste #关闭paste
sed
去除行首空格与tab
sed -i 's/[1]*//g' file
sed中如果引用了变量,需要用双引号变量才会生效
sed -n "/$domain/,/server_name/p" file
打印指定字符下的行
eg:
aaa
1
1
aaa
2
2
2
sed -n '/aaa/ {n;p}' file
rsync
rsync同步过来的日志是655,普通用户不能读
再rsync服务端配置文件 /etc/rsync.conf 中加上如下配置:
incoming chmod = Du=rwx,Dog=rx,Fu=rw,Fgo=r
D --- 目录
F --- 文件
u --- user
o --- other
g --- group
rsync --delete删除问题
[hosta]# cat /tmp
aaa
[hostb]# cat /tmp/test
test1
[hosta]的rsync配置
[tmpa]
path=/tmp
同步b的/tmp/test到a的命令:
rsync -avz /tmp/test rsync://root@hosta:port/tmpa/ --delete
面临问题:
仅同步了test目录到hosta,未删除hosta下的多余文件 aaa
原因:以上rsync命令相当于,所以只会删除hosta下多余的文件。
rsync -avz /tmp/test/ rsync://root@hosta:port/tmpa/test/ --delete
yum
当我安装docker的时候,报错:
yum -y install docker
http://centos.mirrors.ucloud.cn/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to centos.mirrors.ucloud.cn:80; Operation now in progress"
不能连接centos.mirrors.ucloud.cn,换个yum源试试
cd /etc/yum.repos.d/
grep -r centos.mirrors.ucloud.cn
CentOS-Base.repo......
epel.repo......
mv CentOS-Base.repo CentOS-Base.repo.bak
mv epel.repo epel.repo.bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install docker
docker官方镜像版本查询
网址:https://hub.docker.com/r/library/

mkdir 高级用法
mkdir /data/ceph/{etc,lib,logs} -p
常见报错
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
在某个被删除的目录下执行某些命令就会有此报错,cd 到其他存在的目录再执行即可。
umount报错
[root@node3 osd3]# umount /osd3/
umount: /osd3: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
常常是因为这个目录被其他程序占用
[root@node3 osd3]# yum install psmisc
[root@node3 osd3]# fuser -mv /osd3/
USER PID ACCESS COMMAND
/osd3: root kernel mount /ceph-rbd
root 1337 ..c.. bash
[root@node3 huan_yang]# kill -9 1337
[root@node3 huan_yang]# umount /osd3
跨域
https://blog.csdn.net/lambert310/article/details/51683775
切换用户问题
su - jenkins 后 -bash-4.2$ ,看不到所在目录
查看 /home/jenkins 下没有该用户的环境变量,需要拷贝过去
cp -a /etc/skel/. /home/jenkins/
再次切换用户 [jenkins@centos-AutomJenkinsSlave1-4054 ~]$
两种后台运行工具
screen
[root@one tmp]# yum -y install screen
[root@one tmp]# screen #进入后台
[root@one tmp]# top #启动一个需要在后台运行的进程,ctrl+a+d 返回前台
[root@one tmp]# screen -ls #查看后台进程,得到一个进程号
There is a screen on:
23404.pts-0.one (Detached)
1 Socket in /var/run/screen/S-root.
[root@one tmp]# screen -r 23404 #回到该进程后台
daemonize unix系统后台守护进程管理软件
[root@one tmp]# git clone git://github.com/bmc/daemonize.git
[root@one tmp]# cd daemonize/
[root@one daemonize]# sh configure && make && make install
此处我们使用daemonize启动一个tomcat服务
[root@one daemonize]# ./daemonize -c /usr/local/xwiki-tomcat/bin/ /usr/local/xwiki-tomcat/bin/up.sh # 【./daemonize -c 启动脚本路径 启动脚本】 由于此种方式启动不会报错,要养成查看进程的习惯
[root@one daemonize]# ps -ef|grep tomcat
[root@one daemonize]# cat /usr/local/xwiki-tomcat/bin/up.sh
./startup.sh
timeout命令
运行指定的命令,如果在指定时间后仍在运行,则杀死该进程。用来控制程序运行的时间。
”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天
用法:
timeout 5 ping 10.2.8.70 #执行该命令5s后结束该进程
centos空间清理
今天收到告警某一台服务器上/空间快满了,df -h和du -sh 查看结果却不一样
df -h
/dev/vda1 40G 38G 3.0G 93% /
du -sh /
6.4G /
lsof -n|grep deleted
nginx 17143 nobody 7w REG 253,1 32734855528 101628969 /usr/local/openresty/nginx/logs/c3s-api.ccint.access.log (deleted)
nginx 26798 root 7w REG 253,1 32734855528 101628969 /usr/local/openresty/nginx/logs/c3s-api.ccint.access.log (deleted)
发现这两个这两个进程一直在使用这个文件,文件删除后,空间却仍不能释放。
kill -9 17143 26798,或不中断服务 ./nginx -s reload && kill -9 17143
df -h 查看,空间释放了。
\t ↩︎
centos 踩坑集锦的更多相关文章
- Spring boot应用踩坑集锦
Spring boot应用踩坑集锦 spring boot是spring的一种开发套件,是spring cloud的基础框架,要学习spring cloud微服务是绕不开的,遇到一些踩坑问题在这里记录 ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...
- apicloud踩坑集锦
最近在用apicloud开发,这里录入一些踩坑的地方,从头到尾,要多尴尬有多尴尬,新入app开发,记录一些心得,和遇到的坑以及解决办法. 1,apicloud 打包的Android app ,打开fr ...
- centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)
先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...
- Xamarin.Forms踩坑集锦(持续更新)
1.ImageButton控件 问题:ImageButton在切换图片的时候,图片大小会改变. Github Issue:ImageButton changes image size · Issue ...
- centos踩坑指南之安装composer
composer是php的一个依赖管理器,那么安装composer可以快速编译php 但是在centos7以上 安装composer的有一个步骤有个小问题 对于centos6来说是 sudo mv c ...
- hyperledger-fabric环境快速搭建踩坑集锦(实用)
安装docker 及 docker-compose 安装docker没什么好说的,一部分教程都给出了指令,在这里就不谈了. docker-compose不同的教程给出了不同的方法,在这里介绍一种极为快 ...
随机推荐
- JavaScript—对象创建方式
JavaScript 也是面向对象的语言(oop) 之前学JavaScript 没有学对象.现在做下笔记 创建对象的方式: 1. 对象字面量 const hero = { name: '吕布', w ...
- linux 查看ip地址
1.先要打开linux服务器,然后在linux桌面的空白处点击右键 2.在弹出的选项里,点击[打开终端] 3.打开linux服务器的命令终端后,输入查询linux的ip地址的命令:ifconfig - ...
- 51nod1236 序列求和 V3
这题炒鸡简单,只要第一步想对了后面顺风顺水QWQ(然鹅我没想到) 前置芝士: 斐波那契数列通项公式 等比数列求和公式 二项式定理 这题要求的就是 \(\sum_{i=1}^n Fib(i)^k\) , ...
- fiddler限制网速
在测试过程中,经常会要求测试弱网络情况时的一些特殊情况,这时候IOS还好说,在开发者选项中调整网络模式即可,但android就只能通过别的方式了,这里整理了通过fiddler抓包工具来设置弱网模式,在 ...
- codeblocks 配置 opengl 编程宝典 的 gltools 环境
懒得多说,亲测,这个问题,csdn 和 cnblog 上的博客真的没有一个能解决的. 这个帖子2L的答案则完美解决了问题,虽然步骤有些繁琐,过程还是英文,但考虑到了可能出现的各种问题,跟着走一遍就完美 ...
- spring-cloud-feign负载均衡组件
Feign简介: Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便.它具有可插拔注释支持,包括Feign注解和JAX-RS注解.Feign还支持可插拔编码器 ...
- oracle Data Modeler 使用教程
由于 powerdesigner 的版权问题.公司要求集体换成 oracle Data Modeler .免费版就够用,哈哈.这有很详细的入门教程,看一看吧: 官方正版教程 ,特详细,只是英文的,也只 ...
- python 对Excel表格的读取
import xlrd flbrd = "D:\\考勤系统.xlsx" ws = xlrd.open_workbook(flbrd) # 获取所有sheet名字:ws.sheet_ ...
- 关于Python 解包,你需要知道的一切
解包在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来(防杠精:此处描述并不严谨,因为容器中的元素并没有发生改变)放在其它地方,好比你老婆去菜市场买了一袋苹果回来分别发给家里的每个成员, ...
- leetcode python最长回文子串
回文的意思是正着念和倒着念一样,如:上海自来水来自海上,雾锁山头山锁雾,天连水尾水连天 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: & ...