Sparhawk избил меня, но вот мое собственное решение, которое я собирался запустить как задание cron
#!/bin/bash
timestamp1=$(cat du-prev.txt | cut -f 2)
timestamp2=$(date +"%s")
timediff=$(echo "${timestamp2}-${timestamp1}" | bc)
current=$(du -s | cut -f 1)
previous=$(cat du-prev.txt | cut -f 1)
spacediff=$(echo "${current}-${previous}" | bc)
speed=$(echo "scale=2; ((${spacediff}/${timediff})*8)/1024" | bc)
echo "timediff : ${timediff} sec"
echo "spacediff : ${spacediff} KB"
echo "speed : ${speed} Mb/s"
echo -e "${current}\t${timestamp2}" > du-prev.txt
echo -e "${speed}\t${timestamp2}" >> logs/speedlog.txt
Ну, из того, что вы нам сказали, он должен работать отлично ... То есть, если раздел, который он хранит, поддерживает разрешения unix / posix style. Я сталкиваюсь с этой ошибкой все время, если я пытаюсь запустить скрипт из раздела vfat или ntfs. Учитывая, что он установлен в месте, называемом work, это на диске USB с жирным или ntfs отформатированным разделом? Если это так, вы должны префикс оболочки перед скриптом. Проверьте раздел, и это может быть проблемой. Переместите его в свой домашний каталог, и он может легко запускаться в файловой системе, которая поддерживает разрешения unix / posix.
Проверьте, так ли это:
mount |grep nisheet
Говорят, что vfat, fuseblock или ntfs? Если это так ...
Две опции:
Префикс оболочки перед скриптом для запуска:bash abc.sh
Префикс оболочки перед скриптом для запуска:Пример:
mv abc.sh ~/
cd ~
chmod +x abc.sh
./abc.sh