请教大佬们一个 shell 脚本

2021-09-10 17:32:44 +08:00
 king1688888888
应付安全检查,需要创建半年以上的 oracle 审计日志。

oracle11g 审计日志文件:orcl_ora_2417_20210910173104240941143795.aud
日志格式是:orcl_ora_四位随机数字_年月日时分秒+十四位随机数字.aud

想每天生成 10 个审计日志文件,生成半年的日志量,文件创建时间随意。文件名包含了日期,难倒我了,求大佬分享一下 shell 关键代码实现快速生成。
1950 次点击
所在节点    Linux
13 条回复
defunct9
2021-09-10 17:38:55 +08:00
???!!!
nbweb
2021-09-10 17:41:10 +08:00
shell 里面的日期和时间,可以用现在的时间减去一个数,这也是个思路,其它的就是随机生成了。
gstqc
2021-09-10 17:49:01 +08:00
date -d '-1 day' '+%Y%d%m'
defunct9
2021-09-10 17:56:04 +08:00
明显是德勤审计
holinhot
2021-09-10 17:56:16 +08:00
python 更简单吧
JDog
2021-09-10 18:02:01 +08:00
来,开 ssh,v 站一人帮你生成一个,应该够了
ila
2021-09-10 18:03:12 +08:00
@JDog 鬼才
privil
2021-09-10 18:04:38 +08:00
……我上次生成了一个月的数据库备份,记得要改文件属性创建日期噢,哈哈哈
maichael
2021-09-10 18:06:09 +08:00
echo "orcl_ora_$(shuf -i 1000-9999 -n 1)_$(date '+%Y%m%d%H%M%S')$(shuf -i 10000000000000-99999999999999 -n 1).aud"

对随机不敏感的情况可以用
eason1874
2021-09-10 18:16:14 +08:00
胆子真大,不说是测试用数据,直接说应付检查
maichael
2021-09-10 18:21:17 +08:00
没看仔细,不过也一样,写个循环换下时间就行了
类似这样:
start=`date +%s`
for i in {0..10};do
next_date=$((start - i * 86400))
for j in {0..9};do
next_time=$((next_date - j * 60))
filename="orcl_ora_$(shuf -i 1000-9999 -n 1)_$(date '+%Y%m%d%H%M%S' -d @$next_time )$(shuf -i 10000000000000-99999999999999 -n 1).aud"
echo $filename
done
done
aaa5838769
2021-09-10 18:28:03 +08:00
写个循环吧加时间
YouLoveme
2021-09-10 18:37:37 +08:00
我也写来一个。for i in $(seq 0 180);do for j in $(seq 0 9);do echo orcl_ora_$[$RANDOM%9000+1000]_$(date -d "-$i day" "+%Y%m%d%H%M%d%N")$(openssl rand --base64 16|cksum|cut -c 3-7).aud;done;done

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801103

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX