Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Samba. Как изменить дату создания файла при копировании на сервер.  (Прочитано 1982 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zhenyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Есть файловая шара, нужно что-бы при копировании или перемещении туда файла, изменялась его дата на текущую. Пробовал опцию magic script но не вышло. Подскажите как сделать.

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
zhenyok, не копируйте, а записывайте файл в шару. Можно с помощью cat.
например:
cat file.txt > /share/file.txt
Дата создания результирующего файла будет текущей.
Java + HTML5 = Brain explosion.

Оффлайн zhenyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
да не, мне для пользователей надо. что-бы любой помещённый туда документ (методом простого копирования в файл менеджере) становился с текущей датой.

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
zhenyok, тогда вам каким-то образом нужно привязать к событию завершения копирования файла в шаоу следующий скрипт:
#! /bin/sh
C_DATE=`date +%C%y%m%d%H%M`
touch -t$C_DATE $1
#исполняем скрипт
./script.sh copied_file.txt
Java + HTML5 = Brain explosion.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
да не, мне для пользователей надо. что-бы любой помещённый туда документ (методом простого копирования в файл менеджере) становился с текущей датой.
Объясните, зачем это нужно? Умные люди бьются над сохранением метаданных при копировании файлов, а вы херить изволите.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн zhenyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
На файловом сервере создана директория "ДЛЯ ОБМЕНА". файлы в ней должны храниться не более 7 дней. Есть скрипт который по крону удаляет всё что старше 7 дней. для этого мне и нужно реализовать сброс реальной даты создания файла.

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
zhenyok, какя файловая система в директории обмена? А что, если убрать флаги сохранения метаданных? Алсо, по какому критерию скрипт выбирает файлы для удаления? У меня есть похожая задача, файлы так-же качаются из другого места (правда по FTP) и проблемы с временем создания нет.
Java + HTML5 = Brain explosion.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
На файловом сервере создана директория "ДЛЯ ОБМЕНА". файлы в ней должны храниться не более 7 дней. Есть скрипт который по крону удаляет всё что старше 7 дней. для этого мне и нужно реализовать сброс реальной даты создания файла.
Так напиши нормально скрипт.
Создавай список файлов в каталоге, и по списку через 7 дней убивай.
Изобретают сами себе проблемы...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн zhenyok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
zhenyok, какя файловая система в директории обмена? А что, если убрать флаги сохранения метаданных? Алсо, по какому критерию скрипт выбирает файлы для удаления? У меня есть похожая задача, файлы так-же качаются из другого места (правда по FTP) и проблемы с временем создания нет.

Ext4, скрипт самый стандартный find /share2/obmen/ -mtime +7 -type f -exec rm -rfv {} \
Насчёт флагов интересно. как это сделать?
« Последнее редактирование: 26 Декабря 2012, 13:46:28 от zhenyok »

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
zhenyok,
взгляните на мой, может сработает получще:
#!/bin/ksh
# This script compare file timestamp and current time
# if different out of timeout files deleted

# Set timeout for days and/or hours and/or minutes
#
[ ! $1 ] && echo "Please specify folder!" && exit 0 || DEST_PATH=$1
[ ! $2 ] && echo "Please specify log file!" && exit 0 || LOGFILE=$2
[ ! $3 ] && tdays=180  || tdays=$3

echo ---------------------------------------------  >> $LOGFILE 2>&1
echo "Deleting filest from ${DEST_PATH} (with timeout ${tdays} day[s])..." >> $LOGFILE 2>&1
echo "List deleted files from $DEST_PATH" >> $LOGFILE  2>&1

is_deleted=`find ${DEST_PATH} -ctime +${tdays} -exec ls '{}' \; | wc -l`
find ${DEST_PATH} -ctime +${tdays} -exec rm -f '{}' \;

if [ $is_deleted -eq 0 ]; then
  echo "No files must be deleted from ${DEST_PATH}" >> $LOGFILE 2>&1
else
  echo "${is_deleted} file[s] older ${tdays} days deleted from ${DEST_PATH}" >> $LOGFILE 2>&1
fi
echo >> $LOGFILE 2>&1

Я использую ctime, а не mtime, т.к. mtime немного не то.
Java + HTML5 = Brain explosion.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
AnrDaemon,
тут не соглашусь. Ну не надо человеку хранить старые метаданные, пусть хранит новые. Лишняя сущность в виде отдельного списка действительно лишняя. Принцип "а ВДРУГ пригодятся старые" на файлопомойке вряд ли будет актуален.

По сабжу, насчёт самбы не знаю, но если она не умеет, то можно воспользоваться тулзами inotify.

Оффлайн AzraelKDE

  • Активист
  • *
  • Сообщений: 773
  • Kubuntu/Xubuntu user
    • Просмотр профиля
Java + HTML5 = Brain explosion.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
можно воспользоваться тулзами inotify
+1
man 5 incrontab

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.