定时任务

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 查看,空间释放了。


  1. \t ↩︎

centos 踩坑集锦的更多相关文章

  1. Spring boot应用踩坑集锦

    Spring boot应用踩坑集锦 spring boot是spring的一种开发套件,是spring cloud的基础框架,要学习spring cloud微服务是绕不开的,遇到一些踩坑问题在这里记录 ...

  2. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...

  3. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...

  4. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...

  5. apicloud踩坑集锦

    最近在用apicloud开发,这里录入一些踩坑的地方,从头到尾,要多尴尬有多尴尬,新入app开发,记录一些心得,和遇到的坑以及解决办法. 1,apicloud 打包的Android app ,打开fr ...

  6. centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

    先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...

  7. Xamarin.Forms踩坑集锦(持续更新)

    1.ImageButton控件 问题:ImageButton在切换图片的时候,图片大小会改变. Github Issue:ImageButton changes image size · Issue ...

  8. centos踩坑指南之安装composer

    composer是php的一个依赖管理器,那么安装composer可以快速编译php 但是在centos7以上 安装composer的有一个步骤有个小问题 对于centos6来说是 sudo mv c ...

  9. hyperledger-fabric环境快速搭建踩坑集锦(实用)

    安装docker 及 docker-compose 安装docker没什么好说的,一部分教程都给出了指令,在这里就不谈了. docker-compose不同的教程给出了不同的方法,在这里介绍一种极为快 ...

随机推荐

  1. sql注入中关于--+的一点探索

    在sql-labs游戏中,经常使用--+放在最后注释多余部分,而mysql中的注释符为#和-- 却不能直接使用,以前没学过mysql,一直不理解,也不知道+号的作用,今天有时间特地探索了一下,算是搞明 ...

  2. 很好用的电脑桌面远程控制软件 支持多平台 Win,Mac,Debian… 等操作系统 Anydesk

    很好用的电脑桌面远程控制软件 支持多平台 Win,Mac,Debian, Ubuntu, FreeBSD… 等操作系统 Anydesk 官网下载地址:https://anydesk.com/remot ...

  3. hammer.js初探

    hammer.js官方文档 hammerjs是什么 hammerjs是一个短小精悍的库,他可以让我们轻松的实现移动端上的手势. hammerjs的两大优势如下: 为移动端网页添加相关手势. 去除移动端 ...

  4. Ubuntu的sources.list

    参考文章: https://blog.csdn.net/u012843189/article/details/80964287 位于/etc/apt/sources.list 其中 deb http: ...

  5. Python爬虫实战三之爬取嗅事百科段子

    一.前言 俗话说,上班时间是公司的,下班了时间才是自己的.搞点事情,写个爬虫程序,每天定期爬取点段子,看着自己爬的段子,也是一种乐趣. 二.Python爬取嗅事百科段子 1.确定爬取的目标网页 首先我 ...

  6. loongson 2f 和u-boot中的cache命令对照

    00000 Index Invalidate INDEX_INVALIDATE_I (I) 00001 Index WriteBack Invalidate INDEX_WRITEBACK_INV_D ...

  7. No grammar constraints (DTD or XML Schema) referenced in the document.

    问题描述 web.xml 使用 Servlet4.0 版本,No grammar constraints (DTD or XML Schema) referenced in the document. ...

  8. 2018-2019-3 20165314《网络对抗技术》Exp2 后门原理与实践

    1.实验内容 任务一:使用netcat获取主机操作Shell 1.在Windows下使用ipconfig查看本机IP: 2.使用ncat.exe程序监听本机的5314端口: 3.在Kali环境下,使用 ...

  9. .NET Core on K8S快速入门课程学习笔记

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s ...

  10. .Net Core小技巧 - Swagger适配虚拟目录及二级目录

    前言 随着前后端分离模式与微服务架构的出现,Web API变得越来越重要及普遍.而后出现的网关技术,使开发者更倾向于使用二级/多级目录来暴露Web API,一是暴露的端口更少,方便管理:二是在网关中可 ...