简介shell命令flock通过加锁方式实现互斥访问,常用于多进程间互斥访问,flock用flock(2)系统调用实现.Linux提供了flock(对整个文件加锁),fcntl(对整个文件区域加锁)两个函数来做进程间的文件同步.同时也可以使用信号量来完成所需的同步,但通常使用文件锁会更好一些,因为内核能够自动将锁与文件关联起来.flock是对于整个文件的建议性锁,也就是说,如果一个进程在一个文件(
一,背景 作为系统管理员,我们经常会有备份数据,导入数据,执行发布变更,资源变更...操作,在早期公司自动化运维并不成熟的情况下,依靠人力手动执行这些操作,或者编写shell脚本来执行这些操作,执行这些操作一般是打开终端,然后执行命令或脚本,那么执行的这个命令会一直占用这个终端,我们称之为前台进程,当终端不小心被我们关闭了,那么该进程也会终止,对于这种事故显然是我们不想看到的 二,简介 GNU S
前言这个问题对于很多从事linux系统维护工作的人来说简直就是小case,属于小问题,为什么要拉出来单独讲呢,是因为我之前的同事遇到过并且找我咨询,然后现在同事也遇到了这个问题,说明我们对linux系统的理解还是不够透彻,所以单独拿出来讲下起因之前的同事找过来说,他们启的mysql服务,文件句柄数不对,以下图片:排查思路1,先问当前mysql用户是用什么用户启动的,他说是mysql用户2,切入到当
问题前天上午阿里云监控报警,提示我们自己一台ecs官网服务器公网流出带宽使用效率过高处理过程1,登陆官网服务器后使用iftop命令进行排查,39.96.32.45这个流量超过9M(ECS外网总带宽为10M)2,使用ss命令查看具体链接,发现均为http请求3,过滤nginx访问日志,访问日志文件路径这个看nginx配置文件中的access_log配置项的值,然后通过awk,sort,uniq命令统
需求背景:研发发了一张redis查看信息截图,说sdk服务没有获取到用户真实ip他想要能获取到用的真实请求ipsdk服务访问架构思路:这里犯了致命失误 ,没有问清楚,上面那个redis信息是从那个代码上获取,怎么获取到的,虽然在语言方面运维天然劣势,不过可以问研发嘛,那些代码是干什么作用的,如果不去当面问清楚,恐怕自以为解决后但实质研发的问题并没有解决会让你的研发伙伴感觉你是不专业的,后面了解到研
在发布更新的时候验证资源完整性是非常重要的,这里我区分为两种,一种是更新资源的完整性,另外一种是远程执行发布任务脚本的一致性,在开发前期如果不注重这个问题的话,很可能在上线前期就会出现一些灾难性问题。第一种,shell中使用md5sum验证传输文件的完整性这个我是用shell中md5sum来做的,一般的发布流程大概有拉取代码仓库的资源,将资源传到线上,执行发布操作。1,拉取代码仓库资源到跳板机或者
有两种方式:第一种:使用sersync进行数据实时同步一:sersync介绍sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器二:sersync工作过程在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更
是这样的,我有一台区服列表服务器,上面搭建有nginx服务,nginx安装目录在/usr/local/nginx下,我准备用system去管理nginx服务cat /etc/systemd/system/nginx.service [Unit] Description=The Nginx HTTP Server After=network.target remote-fs.target nss-l
1.功能说明(1)假设我有一台内网(或者说处理内部局域网)的服务器A,(就是内网服务器)其内网ip为10.0.0.29,但由于没有公网ip,因此我们无法直接从外网连接到这个服务器(2)不过服务器A能访问外网,假设我们有台外网服务器 B,其内网ip为10.99.1.243,其负载均衡公网ip为xx.xx.xx.xx 。那么我们就可以在服务器 A 上做到服务器&
netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。下面是一些使用netcat的例子.[
开发找过来说系统内打开文件句柄数过多需要看下,下面看到java进程用lsof -n |awk '{print $1,$2}' |sort |uniq -c |sort -nr -k1 命令看到统计结果发现确实很多,centos6上就不一样了,但是同样的java代码放在不同的服务器上,为什么统计出来的是不一样的呢?后来翻百度竟然翻到了https://github.com/rapidoid/rapid
1,添加swap文件大小为4G #dd if=/dev/zero of=/swap bs=1k count=4096000 4096000+0 records in 4096000+0 records out 4194304000 bytes (4.2 GB) copied, 98.1129 s, 42.7 MB/s 2,制作swap文件 # mkswap /swap Setting
centos yum安装yum -y install dsniff --enablerepo=epel安装完成后可以发现系统多了一个tcpkill的命令,命令使用方法如下:tcpkill -9 port ftp &>/dev/nulltcpkill -9 host 192.168.10.30 &>/dev/nulltcpkill -9 port 53 and port
一,最近登录一台CentOS 6机器,发现每次登录都提示如下警告:这种警告当然不能容忍,所以要fix it.tee /etc/environment <<- 'EOF' LANG=en_US.utf-8 LC_ALL= EOF source /etc/environment /* 生成 en_US.UTF-8 locale文件 CentOS没有locale-gen命令*/ l
1,安装python依赖包redis#安装python依赖 yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel#传入python包
JSON是前端编程经常用到的格式,对于PHP或者Python,解析JSON都不是什么大事,尤其是PHP的json_encode和json_decode,干的相当的漂亮。Linux下也有处理处理JSON的神器:jq。 对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,而也,jq没有乱七八糟的依赖,只需要一个binary文件jq,就足矣。下面我们看下jq
实验:vim ipvim list执行paste ip list >> ip_list
#/bin/bash #通过ftp发布的yum服务器配置 #iso路径:/data/rhel-server-7.2-x86_64-dvd.iso #yum服务器ip:192.168.110.10 #FTP路径:/var/ftp/yum/rhel7 # if ! rpm -q vsftpd > /dev/null then echo "vsftpd service not fo
#!/usr/bin/env bash #=============================================================================== # # FILE: find_disk_usage.sh # # USAGE: ./find_disk_usage.sh <directory> [t
脚本实现,此处引用处忘记了..#!/bin/bash wget -q http://www.dwhd.org/script/securityremove -O /bin/securityremove chmod 755 /bin/securityremove [ -f /etc/bash.bashrc ] && (sed -i "/securityremove/d" /etc/ba
实际生产环境中,尤其是在集群环境里,多机互信很重要禁掉和开放必要的程序1,禁掉ipv6echo -e 'net.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf && sysctl -p2,替换Firewalld为iptablessyst
# 升级gcc yum install -y libmpc-devel mpfr-devel gmp-devel zlib-devel cmake mkdir -p /tmp/gcc && cd /tmp/gcc curl -Lk ftp://ftp.gnu.org/pub/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz|tar xz -C /tmp/gcc
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号