前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >shell脚本方便操作记录(持续添加)

shell脚本方便操作记录(持续添加)

作者头像
bear_fish
发布于 2018-09-20 07:29:47
发布于 2018-09-20 07:29:47
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

http://blog.csdn.net/richerg85/article/details/44001501

工作中经常用到的方便操作的shell命令,记录如下:

全局替换:

:%s/tmp\/\"/tmp\/\$dev_id\"\_/g

:%s/\$log_time_format /

\`date\+%Y%m%d%H%M\`

/g

打包

tar -czvf /data/third_part_new_bak/third_part_201406161044.tar.gz --exclude=*.apk 360Safe/ common

tar -czvf /data/third_part_new_bak/third_part_201406171627.tar.gz --exclude=*.apk --exclude=third_part_new/sdk/* --exclude=third_part_new/test third_part_new/

49.157服务器

tar -czvf /data/scanSystem201406301025.tar.gz --exclude=*.apk --exclude=*.img --exclude=*.gz --exclude=tools/* scanSystem/

tar -czvf /data/emulator_scan201407031747.tar.gz --exclude=*.apk --exclude=.android/* --exclude=*.gz --exclude=temp/* --exclude=sdcard/* emulator_scan/

tar -czvf emulator_scan201407081806_48189.tar.gz --exclude=*.apk --exclude=*.img --exclude=*.gz --exclude=log/* --exclude=temp/* --exclude=SafeManager/log/* --exclude=Tencent/log/* --exclude=Trustgo/log/* --exclude=360Safe/log/   .

find . -mtime 0   # find files modified between now and 1 day ago                   # (i.e., within the past 24 hours) find . -mtime -1  # find files modified less than 1 day ago                   # (i.e., within the past 24 hours, as before) find . -mtime 1   # find files modified between 24 and 48 hours ago find . -mtime +1  # find files modified more than 48 hours ago find . -mmin +5 -mmin -10 # find files modifed between                           # 6 and 9 minutes ago

time:

date -d -2day +%Y%m%d 

date -d 1day +%Y%m%d

查看守护进程:

ps xj

判断字符串为空的方法有三种: 

if [ "$str" =  "" ]   if [ x"$str" = x ]  if [ -z "$str" ] 

统计文章中某字出现的次数:

① awk  '{s+=gsub(/level/,"&")}END{print s}' fileName

gsub(r,s)

在整个$0中用s替代r

gsub(r,s,t)

在整个t中用s替代r

② cat file | grep -o "level" |wc -l

-o, --only-matching

              Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

    打印匹配行的匹配部分,每一个匹配作为一行

liujl@ubuntu:~$ cat /etc/passwd | grep www www-data:x:33:33:www-data:/var/www:/bin/sh liujl@ubuntu:~$ cat  /etc/passwd | grep -o "www" www www www liujl@ubuntu:~$ cat  /etc/passwd | grep -o "www" |wc -l

查看文件中文件中的指定内容:

find ./ -name "unknownlist_*" | xargs grep "62aa180a3d5957cec348f25b953e8d60"

去除文件中重复的行:

sort -u test

计算百分比,expr不支持浮点除法

所以用awk格式输出:

virus_rate=`awk 'BEGIN{printf "%.2f%\n",('$not_contain_apksnum'/'$total_virus_apksnum')*100}'` 2>/dev/null

tar 打包相关:

tar --exclude=./sys.log -jcv -f bak.tar.bz2 ./*.log  将当前目录下除sys.log以外所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包; tar -N "2010/10/08" -jcv -f bak.tar.gz ./*.log 将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包; tar --newer-mtime="2010/10/08" -jcv -f bak.tar.bz2 ./*.log 将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%%string*}从右向左截取最后一个string后的字符串

${varible%string*}从右向左截取第一个string后的字符串

awk 用法:awk ' pattern {action} '  

FS 输入域分隔符,默认为一个空格  RS 输入记录分隔符  NF 当前记录里域个数  NR 到目前为止记录数  OFS 输出域分隔符 

ORS 输出记录分隔符 

shell,变量的变量获取:

engine_name=360

engine_num_360=2

engine_num=`eval echo '$'engine_num_$engine_name`

数组for循环的两种方法:

for port in ${port_list[@]}

直接访问port

for ((index=0;index<${#port_list[@]};index++))

访问 ${port_list[$index]}

例如 a=1,2,3,4 转化为数组:

OLD_IFS="$IFS"     IFS=","     port_list=($port_list)     device_names=($device_names)     IFS="$OLD_IFS"

2015-03-01

记录log文件,在配置中无意在每个需要生成的文件后面多添加了一个空格,

例如 exception_2015-03-01.log------>"exception_2015-03-01.log "(多出一个空格)

这个空格如何批量去掉?

[plain] view plaincopy

  1. ls *.log\  | awk '{printf "mv \t \"%s\"\t",$0;gsub(/[[:blank:]]/,"");print "\t"$0}' > a.list  

通过awk的gsub来实现替换

执行上个命令,a.list为:

mv "xxxx_log_2015-02-28.log "xxxx_log_2015-02-28.log

然后用shell执行这个a.list,就可以去掉后面的空格!

删除修改时间在30天之前的所有文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
find . -type f -mtime +30 -exec rm -v {} \;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年03月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LINUX脚本使用实战,持续更新
结果测试 [root@zabbix shell]# sh checkurl.sh www.baidu.com www.baidu.com url [ 确定 ]
cuijianzhe
2022/06/14
2K0
LINUX脚本使用实战,持续更新
更新博客生成发布及同步GitHub的Shell脚本:解决文件名空格问题
前面一篇文章通过Linux Shell脚本的方式,实现博客生成发布及同步GitHub的的功能:先同步GitHub个人仓库中的Markdown文章到本地,然后通过Pelican编译生成静态HTML文件,最后发布到Nginx的web目录下面,同时更新到GitHub个人主页(vfhky.github.io)。
typecodes
2024/03/29
1310
更新博客生成发布及同步GitHub的Shell脚本:解决文件名空格问题
Linux 【Shell脚本经典案例】
===============Talk is cheap, show me the code,bye-bye================
IT茂茂
2020/09/17
3.3K0
Linux 【Shell脚本经典案例】
【笔记归档】shell学习笔记
1.3 登录shell or --login (交互式,非交互) /etc/profile, ~/.bash_profile, ~/bash_login, ~/.profile (~/.bash_logout, 退出时)
fankhu
2021/08/06
1.5K0
06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置N
@TOC 06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本 --- 一. NGINX和浏览器、网页的关系 nginx是一个web服务器 html语言编写网页 cd /usr/local/nginx html cd html/ (注:存放网页路径) 思考: 1.网页和nginx的关系 nginx将网页发送给浏览器 2.浏览器和nginx的关系
mycpen
2022/09/02
1K0
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
非常实用的常用Linux运维Shell脚本
废柴阿尤
2023/12/18
3420
实用Shell脚本
假设服务器为lnmp环境,近期访问经常出现502现象,且502错误在重启php-fpm服务后消失,因此编写监控脚本,一旦出现502,则自动重启php-
花落花相惜
2021/11/26
1.3K0
unix 的 bash shell 脚本
1. test01   test02 1 200    1 100 2 500    2 300 3 200    3 50 4 100    4 150 输出 200 100 100 500 300 200 300 50  150 100 150 -50 awk 减法数组 awk ‘ NR == FNR { a[NR]=$2 } NR != FNR { print a[FNR], $2,(a[FNR]-$2)} ' /root/test* 2. 123abc456 45
bear_fish
2018/09/20
1.6K0
Linux centos下编译安装Lnmp shell脚本
#!/bin/bash repo="/etc/yum.repos.d/CentOS7-Base-163.repo" if [ ! -e $repo ]; then # -e 判断文件存在;参考:Shell if 条件判断文件或目录 yum install -y wget cd /etc/yum.repos.d/ mkdir bak mv * bak #wget http://mirrors.aliyun.com/repo/Centos-7.repo #wget http://
eisc
2020/11/14
2.4K0
Linux Shell脚本案例
1.Dos攻击防范(自动屏蔽攻击IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptabl
用户7741497
2022/03/01
1.3K0
针对Nginx日志的相关运维操作记录
在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计。 1)Nginx日志的标准格式(可参考:http://www.cnblogs.com/kevingrace/p/5893499.html) log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_by
洗尽了浮华
2018/03/28
1.4K0
shell 学习笔记(16)
转载请注明出处: https://cloud.tencent.com/developer/user/1177713/activities 注:以前的1-15连载部分放在百度空间, 目前百度空间已不支持
用户1177713
2018/02/24
1.5K0
shell 学习笔记(16)
定时备份脚本分享(网站数据和数据库数据)
备份是我们运维人员最基本的日常工作,做好备份是稳定运维的一个重要环节。下面分享两个使用过的简单备份脚本: 1)网站数据备份 将网站数据/var/www/vhost/www.hqsb.com和/var/www/vhost/www.huanqiu.com分别备份到: /Data/code-backup/www.hqsb.com和/Data/code-backup/www.huanqiu.com下。 [root@huanqiu_web5 code-backup]# cat web_code_backup.sh #
洗尽了浮华
2018/01/23
1.8K0
Linux常用Shell脚本,值得学习及收藏
在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本。如何学好脚本,最关键的是就是大量的练习 和实践。根据以下脚本我们可以拓展,这样我们提高的很快!举一反三!
互扯程序
2018/12/07
3.4K0
shell脚本自动备份mysql数据库,并进行云备份
先需要安装ossutil这是一键安装脚本(Linux)sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash下面是脚本user="root" #备份用户密码 password="111111" #mysql连接端口 port="3306" mysql_path="/usr/bin/" date=$(date +%Y-%m-%d_%H-%M-%S) del_date=$(date +%Y-%m-%d) #备份路径-
SuperChen
2023/02/12
3.2K0
MySQL 冷备份操作 + shell 脚本自动备份
tar jcvf data_cold_back.tar.bz2 data 当需要进行冷备份操作时, 只需执行脚本命令即可(操作会覆盖掉之前备份的压缩文件,没啥不利影响)
泥豆芽儿 MT
2022/01/06
3K2
MySQL 冷备份操作 + shell 脚本自动备份
2021最新shell命令重置版整理(经典推荐)
文件 ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf dirname # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 un
IT运维技术圈
2022/06/26
3500
10 个实战与面试【常用 Shell 脚本】编写
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
昱良
2019/06/19
4680
shell 学习笔记(19)
声明:转载需署名出处,严禁用于商业用途! 1801.关于 nohup 后台运行的问题: nohup就是拒绝hup信号,没什么其他用途, 如果是shopt -s huponexit的话,shell在退出的时候自己把自己所有的子进程都发一个hup信号, 然后就退出了,但是我还没见过哪种发行版会启用这个参数的。 后台就直接加个&就行了:sh 1.sh & ,退出终端并不会终端程序,sleep 9999 &,然后退出,然后再登录,看下是不是还在 除非你shopt -s
用户1177713
2018/02/24
1.1K0
相关推荐
LINUX脚本使用实战,持续更新
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文