Проверьте сгенерированное имя файла еще раз:
/home/user/db_dump_12/02/2017_14:30:15.txt
Он пытается записать в подкаталог под названием 02
. Если этого каталога не существует, вы получите сообщение "No such file or directory".
Я предлагаю использовать другой формат даты:
dumpfile_date=$( date +"%F-%T" ) # or %Y%m%d-%H%M%S or something similar
pg_dumpall -U postgres -w > "/home/user/db_dump_$dumpfile_date.txt"
не путайте
a = b
и
a == b
даже с if ()
test, a = b
устанавливает значение b равным a. (даже если a равно $ 3
).
вы должны написать:
$3 == 1