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
(3) 查看版本
(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#启动监听脚本,观察文件夹内的变化
执行下面脚本,在文件夹内新增文件
#!/bin/bash
int=1
while(( $int<=10 ))
do+
echo $int
cp /tmp/test.cap /root/testdir/${int}.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
命令。
每一分钟请求一个地址
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
删除rm
cp -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/