.bak
обычно определяет это, файл является резервной копией чего-то, но кроме которого он дает драгоценно мало информации относительно фактического типа файла.
Попытайтесь смотреть на вывод file
команда, которая изучает первые несколько битов файла, чтобы видеть, распознает ли это его как известный тип файла:
caleburn: ~/ >file image001.jpg
image001.jpg: JPEG image data, JFIF standard 1.01
caleburn: ~/ >file oops.png
oops.png: PNG image data, 935 x 546, 16-bit/color RGB, non-interlaced
caleburn: ~/ >file zones.zip
zones.zip: Zip archive data, at least v2.0 to extract
caleburn: ~/ >file eth2.pcap
eth2.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 96)
И так далее, и так далее. После того как Вы знаете, какой файл Linux думает, что это, Google должен смочь предложить, как получить доступ к нему.
... Поочередно, можно спросить, кто бы ни отправил его Вам, чем исходное имя файла, как предполагалось, было и узнало тот путь.:)
В crontab можно установить MAILTO для указания на почтовый псевдоним, который запускает скрипт. Тот сценарий принял бы сообщение электронной почты, снял бы изоляцию с заголовков и другого самодовольного дурака, и зарегистрировал бы остаток с регистратором. Так как весь вывод сценария крона отправляется в адрес, указанный MAILTO, Вы получили бы все.
Пример: в crontab
MAILTO=myalias
В/etc/mail/aliases (принимающий Вы используете sendmail),
myalias:"|/usr/local/bin/my-processing-script.sh"
и имейте сценарий, снимают изоляцию с почтовых заголовков и обрабатывают производство крона.
Любой вывод, произведенный командой, отправляется пользователю, указанному в переменной среды MAILTO, как установлено в crontab (5) файл или, если никакая переменная MAILTO не установлена (или если это в (1), или обработайте в пакетном режиме (1) задание), владельцу задания. Если команда не произведет вывода или если переменная среды MAILTO будет установлена на пустую строку, то никакая почта не будет отправлена.
Так как это использует местную почту, Вы действительно ничего не должны настраивать или возможно просто устанавливать mailx, если это уже не здесь. Крон отправит Вам вывод, можно сохранить почту в файле и сделать много вещей оттуда. Попытка изменить способ, которым крон работает для прямого удовлетворения потребности, не является способом пойти. Если Вы не думаете так, просто исправляете и re-buil крон, назовите его my_cron и используйте его вместо крона. И будьте готовы в конечном счете сохранить свое my_cron актуальное и часто восстанавливать его.
Добавьте это в начале всех своих сценариев для входа всего и остановки в первой ошибке
exec 2>&1 > /var/log/YOUR_LOG_FILE
set -e
> /var/log/YOUR_LOG_FILE 2>&1
т.е. сначала перенаправьте stdout в файл и только затем перенаправьте stderr к stdout (который теперь указывает на файл).
– jfs
21.05.2016, 11:32
Сценарий Райана Йе по адресуhttps://stackoverflow.com/a/7145618/20774также полезен для этого, хотя он работает и с stdout, и с stderr.
I have a small script cronlog.sh to do this. The script code
#!/bin/sh
echo "[`date`] Start executing $1"
$@ 2>&1 | sed -e "s/\(.*\)/[`date`] \1/"
echo "[`date`] End executing $1"
Then you could do
cronlog.sh /opt/scripts/sql_fetch >> your_log_file
Example result
cronlog.sh echo 'hello world!'
[Mon Aug 22 04:46:03 CDT 2011] Start executing echo
[Mon Aug 22 04:46:03 CDT 2011] helloworld!
[Mon Aug 22 04:46:03 CDT 2011] End executing echo