2014-05-11 57 views
1

我有一个bash脚本。我需要对安全性进行修改。Bash脚本 - 文件大小

我原来的bash脚本:

mv /home/script/backup /home/script/backup2 
mysql -u user -ppassword -Ddatabase --batch --skip-column-names -e 'select id, url from videos where url like "%http%" limit 1' | 
while read id url 

do youtube-dl -o "/home/script/uploads/$id.mp4" -f 18/17/22/mp4 "$url" 
done 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET url=CONCAT(id,'.mp4') WHERE url LIKE '%http%' limit 1" ; 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET source_id='1' WHERE source_id in (3) limit 1"; 

mv /home/script/backup2 /home/script/backup 

exit 

我需要这个bash脚本:

mv /home/script/backup /home/script/backup2 
mysql -u user -ppassword -Ddatabase --batch --skip-column-names -e 'select id, url from videos where url like "%http%" limit 1' | 
while read id url 

do youtube-dl -o "/home/script/uploads/$id.mp4" -f 18/17/22/mp4 "$url" 
done 

这里:我要检查文件的大小。如果它大于10 KB,我想运行以下所有命令。

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET url=CONCAT(id,'.mp4') WHERE url LIKE '%http%' limit 1" ; 

mysql -u user -ppassword -Ddatabase -e "UPDATE videos SET source_id='1' WHERE source_id in (3) limit 1"; 

mv /home/script/backup2 /home/script/backup 

exit 

如果小于10 KB或未找到文件,我只想运行此命令。

mv /home/script/backup2 /home/script/backup 

exit 

回答

1

要获得以字节为单位的文件大小,您可以使用stat程序。有关此类型man stat的更多信息,请参见命令行。 stat -c %s <file path>将以字节为单位给出文件大小的输出,然后您应该能够检查。

1

除了James所说的之外,检查文件大小的另一种方法是使用du命令。

du -h somefile.txt 

结果:

4,0K somefile.txt 

要省略文件名,你可以发出

du -h somefile.txt | cut -f 1 

结果:

4,0K 
+0

您不妨忽略'-h'(人可读),这将导致数字在K中给出(但K不会是p漱口),你不需要检查和剥离单位。对于较大的文件,'-h'将导致不同的单位。 –