i编写一个脚本,该脚本使用RSYNC和RSYNC插入到数据库中的输出。除了一件小事情,它的运作良好。数据库中的文字是一行,没有"新线"一堆空间或制表符。但是,如果我将查询写在屏幕上,那很好。它看起来我想要的是DB单元格。
有人可以在这个问题上提供帮助吗?
这是脚本:
#!/bin/bash
DATUM=$(date +%Y-%m-%d)
IDO=$(date +%H:%M:%S)
LOG_FAJL="/media/2TB/MENTES_PC/log/"$DATUM"_"$IDO"_rsync_2TB.log"
LOG_FAJL_SED="/media/2TB/MENTES_PC/log/"$DATUM"_"$IDO"_rsync_2TB_SED.log"
CEL="/media/BACKUP_2TB/"
FORRAS="/media/2TB/"
KIZARAS1="--exclude='/media/2TB/lost+found/'" -- exclude='/media/2TB/.Trash-1000/'
DB_USER="user"
DB_PASSWORD="secret"
DB="xx"
TABLA="table"
if [ ! -f "$LOG_FAJL" ];
then
printf "%b" "\\n\n\t\t\t\t\t\t\t\t##########################################" > "$LOG_FAJL" # more fancy header...
fi
printf "%b" "\n\n\n A mentés készült: $(date +%Y-%m-%d_%H:%M:%S) \n" >> "$LOG_FAJL"
printf "%b" " *************************************\n" >> "$LOG_FAJL"
KEZDES=$(date +%s)
printf "%b" "\n "$FORRAS" mentése ide: "$CEL >> "$LOG_FAJL"
printf "%b" "\n ==========================================\n\n" >> "$LOG_FAJL"
rsync -azvh --delete "$KIZARAS1" --stats --human-readable $FORRAS $CEL >> "$LOG_FAJL"
VEGE=$(date +%s)
ELTELT=$(($VEGE-$KEZDES))
printf "%b" "\n\n A mentés tartott: " >> "$LOG_FAJL"
printf "%02dh:%02dm:%02ds" "$(($ELTELT/3600))" "$(($ELTELT%3600/60))" "$(($ELTELT%60))" >> "$LOG_FAJL"
printf "%b" "-ig\n ********************************" >> "$LOG_FAJL"
cat "$LOG_FAJL" | sed "s/'/\'/g" > "$LOG_FAJL_SED"
QUERY="INSERT INTO "$TABLA" (datum,ido,log) VALUES ('"$DATUM"','"$IDO"','"$(cat "$LOG_FAJL_SED")"');"
echo "$QUERY"
mysql -u$DB_USER -p$DB_PASSWORD $DB -e "$QUERY"
好奇您正在使用什么应用程序来查看插入的数据,mysql workbench,squirrel等?
我怀疑新线/运输返回实际上是在那里,只是该应用没有显示它们。
您可以使用mySqlDump将数据提取到文件中,并查看新线是否在输出中。