189 8069 5689

linuxsh命令切割 linux 分割

linux切割、备份大的nohup日志文件

nohup.out日志文件太大了,且一直增长,命令查看日志受阻

目前创新互联已为超过千家的企业提供了网站建设、域名、网页空间、网站托管、服务器托管、企业网站设计、南宁网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

①切割大文件变成多个小文件

②每天定时保存前一天的日志,重新记录当天日志

1.利用split命令切割

①按文件大小切割大文件:

切割文件:将ohup.out文件每500M切割一个文件放到/home/nginx/logs/newlog/目录下

②按文件行数切割大文件:

查询文件行数:

wc -l b.log

2038711 b.log

按50W行切割一个文件:

split -l 500000 -d -a 4 /home/nginx/logs/b.log /home/nginx/logs/newlog/

2.定时备份前一天日志,重新记录当天日志splitlog.sh

3.定时执行

查看定时任务:

crontab -l

编辑定时任务:

crontab -e

重启定时任务:

删除10天以前的日志文件,此日期为文件本身的时间,非日志内容时间

Linux中的sh命令的详细解释

linxu下的sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!

一、Linux中的sh命令的详细解释

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法

bash [options] [file]

选项

-c string:命令从-c后的字符串读取。

-i:实现脚本交互。

-n:进行shell脚本的语法检查。

-x:实现shell脚本逐条语句的跟踪。

二、Linux中的sh命令的具体例子

使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh

+ DEFINE=30

+ cat /var/log/secure

+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'

++ cat /root/satools/black.txt

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk -F= '{print $1}' + IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk -F= '{print $2}'

+ NUM=1427

+ '[' 1427 -gt 30 ']'

+ grep 121.42.0.16 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk -F= '{print $1}'

+ IP=121.42.0.72

++ awk -F= '{print $2}'

++ echo 121.42.0.72=276

+ NUM=276 + '[' 276 -gt 30 ']'

+ grep 121.42.0.72 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中对.sh文件的操作命令

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

3、保存退出

敲击esc, 然后输入 :wq ,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod +x test.sh

5、运行文件

(1)./test.sh

(2)sh test.sh

6、删除文件

rm test.sh

linux里sh命令是做什么的?详解!

sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的。当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。

还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的

linux编写分割文件的脚本cut.sh,要求

基本思路

接收参数n和文件名

head命令 去文件n行内容 输出为file1

wc计算文件行数 减去 n

使用tail 取减去n的行数 输出到file2

当然也可以使用sed命令实现

Linux shell脚本按日期 切割pm2日志

linux shell脚本按日期 切割pm2日志 (解决定时任务pm2命令无法执行问题,原因:没有环境变量)

首先在输入命令echo $PATH 拿到当前系统环境变量

然后在/root/.pm2目录新建cutlog.sh文件(注意:第一句一定要有,设置当前shell脚本里面的环境变量,没有的话pm2命令会无法执行)

PATH=/root/.nvm/versions/node/v6.10.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

CURPATH=/root/.pm2

OUTPATH=/home/cutLogsDate

mkdir -p $OUTPATH

INPUTPATH=$CURPATH/logs

reloadProcessLogs(){

logFilesGame="${INPUTPATH}/$1"

yesterday=`date -d last-day '+%Y%m%d_'$2`

logOfLastDay=$OUTPATH/$yesterday.log

mv $logFilesGame $logOfLastDay

touch $logFilesGame

echo "切割$1成功"

}

reloadProcessLogs 'game-out-0.log' 'game_out'

pm2 reloadLogs设置定时任务

输入crontab -e命令编辑

0 3 * * * sh /root/.pm2/cutlog.sh


分享文章:linuxsh命令切割 linux 分割
网站网址:http://cdxtjz.cn/article/hjdood.html

其他资讯