linux命令大全

linux命令大全,方便自己检索

重命名:

原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。
rename main1.c main.c main1.c

复制文件:

 cp -i file1 dir1

linux 查看进程

ps -ef/ ps -aux

[root@ids0001 logstash]# ps -ef |grep logstash

杀死进程

kill 1827

kill -9 1827

查看内存

free -m

查看进程所用内存

top
然后按M进行排序

后台运行

sudo nohup cmd 

sudo nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf &

inotify命令

功能:监控某个目录的文件是否发生变化执行相应脚本

(0)首先查看系统内核是否支持inotify功能 ls -l /proc/sys/fs/inotify,出现如下内容说明支持:

total 0
-rw-r--r-- 1 root root 0 Apr 23 15:23 max_queued_events
-rw-r--r-- 1 root root 0 Apr 24 22:11 max_user_instances
-rw-r--r-- 1 root root 0 Apr 23 15:23 max_user_watches

或通过 uname -a 查看当前系统内核版本是否在2.6.13 以上:

Linux VM_3_105_centos 3.10.107 x86_64 GNU/Linux

(1)查看是否安装

rpm -qa inotify-tools #如果没安装

没有回显则没有安装

(2)安装inotify

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install inotify-tools -y

1604557978079

(3) 查看版本

1604558015626

(4)使用教程

1)创建执行脚本:inotifytest.sh脚本:监控/root/testdir目录,输出目录的CRUD变化。参考使用inotifywait同步修改的文件到服务器

#!/bin/bash
#监视目录和目标目录
FROM_DIR="/root/testdir"
#inotifywait -m -r --timefmt "%F %T" --format "%e %w %f" -o /var/log/change.log $FROM_DIR
inotifywait -m --format "%e %w %f" $FROM_DIR | while read eventName dirName fileName; do
    #显示事件
    echo "-- Event:$eventName Dir:$dirName File:$fileName"
    #忽略“.”开头和“_”结束的文件
    if [[ $fileName == .* ]] || [[ $fileName == *_ ]]; then
        continue
    fi
    #复制改动的文件(有些IDE会在临时文件编辑,保存时同够移动覆盖原文件)
    case $eventName in
    CREATE)
        echo "create $fileName"
        sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -r /tmp/${$fileName} -l  /var/log/suricata/cap
        #cp -v ${dirName}${fileName} $TO_DIR/$dirName
    esac
done

2)执行监听脚本

./inotifytest.sh#启动监听脚本,观察文件夹内的变化

1604562579710

执行下面脚本,在文件夹内新增文件

#!/bin/bash
int=1
while(( $int<=10 ))
do+
    echo $int
    cp /tmp/test.cap /root/testdir/$&#123;int&#125;.cap
    let "int++"
done

crontab定时

https://www.cnblogs.com/wenzheshen/p/8432588.html

https://blog.csdn.net/ithomer/article/details/6817019

https://www.jellythink.com/archives/155

新建脚本time.sh 内容如下,防止suricata执行时间过长,有些文件没有执行到就被删除了

#!/bin/bash
cp -Rf /root/testdir/ /root/temp/
rm -rf /root/testdir/*
suricata -c /etc/suricata/suricata.yaml -r /root/temp/
rm -rf /root/temp/*

在终端输入以下命令:

crontab -e

在显示的文件末尾添加以下规则:#每5分钟运行一次time.sh脚本,并把错误和正确的日志都存到/tmp/load.log上。

*/5 * * * * /root/time.sh > /tmp/load.log 2>&1

编辑完成,保存完成以后,就会显示以下提示信息:

crontab: installing new crontab

这就说明正在安装新的定时任务,如果没有这条提示信息,请重新运行crontab -e命令。

1604578836302

每一分钟请求一个地址

crontab -e
*/1 * * * *  /usr/bin/curl https://www.baidu.com/ > /tmp/load.log 2>&1

2.将正确和错误日志都输出到 /tmp/load.log

*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1

最后推荐个在线网站 解读表达式https://tool.lu/crontab

1617957777906

删除rm

cp -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/
文章目录
  1. 重命名:
  2. 复制文件:
  3. linux 查看进程
  4. 杀死进程
  5. 查看内存
  6. 查看进程所用内存
  7. 后台运行
  8. inotify命令
  9. crontab定时
  10. 删除rm