将连续电报保存到不同的文件夹中
Save continuous telegram in to different folder
我在保存电报输出时遇到问题。我的问题是,我每分钟都会从服务器获取数据。我的非常简单的代码可以将这些连续数据保存到一个 .txt 文件中。
但我想要的是,将这些数据存储在日常文件夹中。从这段代码中,运行,它会创建当天的文件夹,但会在同一文件夹和同一文件中继续添加第二天的数据。
我的示例代码是:
#!/bin/bash
foldername=$(date +%Y%m%d)
mkdir -p /home/bash-test/"$foldername"
echolog(){
if [ $# -eq 0 ]
then cat - | while read -r message
do
echo "$(date -u +"%F %T %Z ; ") $message" | tee -a $MY_LOG
done
else
echo -n "$(date -u +'%F %T %Z') ; " | tee -a $MY_LOG
echo $* | tee -a $MY_LOG
fi
}
telnet 197.204.12.253 1001 | echolog > /home/bash-test/"$foldername"/Ppt_$(date +%Y%m%d).txt
哦,我知道了,'echolog' 是你的函数,我还以为是什么应用呢。可以这样简化:
#!/bin/bash
fun(){
while read data; do
printf -v folder '%(%Y%m%d)T' -1
printf -v filenm 'test_%(Y%m%d_%h%s)T.txt' -1
mkdir -p $folder &> /dev/null
echo "$data" >> "$folder/$filenm"
done
}
tail -f file | fun
我在保存电报输出时遇到问题。我的问题是,我每分钟都会从服务器获取数据。我的非常简单的代码可以将这些连续数据保存到一个 .txt 文件中。
但我想要的是,将这些数据存储在日常文件夹中。从这段代码中,运行,它会创建当天的文件夹,但会在同一文件夹和同一文件中继续添加第二天的数据。
我的示例代码是:
#!/bin/bash
foldername=$(date +%Y%m%d)
mkdir -p /home/bash-test/"$foldername"
echolog(){
if [ $# -eq 0 ]
then cat - | while read -r message
do
echo "$(date -u +"%F %T %Z ; ") $message" | tee -a $MY_LOG
done
else
echo -n "$(date -u +'%F %T %Z') ; " | tee -a $MY_LOG
echo $* | tee -a $MY_LOG
fi
}
telnet 197.204.12.253 1001 | echolog > /home/bash-test/"$foldername"/Ppt_$(date +%Y%m%d).txt
哦,我知道了,'echolog' 是你的函数,我还以为是什么应用呢。可以这样简化:
#!/bin/bash
fun(){
while read data; do
printf -v folder '%(%Y%m%d)T' -1
printf -v filenm 'test_%(Y%m%d_%h%s)T.txt' -1
mkdir -p $folder &> /dev/null
echo "$data" >> "$folder/$filenm"
done
}
tail -f file | fun