Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores

Me gustaría dedicar un artículo a una descripción general de las API proporcionadas por varios sistemas operativos para rastrear cambios en un directorio. El artículo apareció como resultado de mi trabajo sobre los demonios de seguimiento de cambios para la utilidad dklab_realsync (repositorio de github) y el mío propio, que no quiero anunciar todavía.

Windows ReadDirectoryChangesW

Para Sistema operativo Windows tiene una maravillosa función ReadDirectoryChangesW que devuelve un conjunto de cambios para un directorio, incluido un indicador para que funcione de forma recursiva (bWatchSubtree). Por lo tanto, la implementación del seguimiento de cambios en el directorio no es difícil, y en la misma implementación de dklab_realsync se necesitan 80 líneas de código o 3,5 Kb. ¡Curiosamente, en Windows estos eventos son compatibles incluso a través de SMB!

Sin embargo, hay ciertas trampas:

  • el tamaño final del búfer de cambios, después de lo cual la cola de eventos se desbordará y estos eventos se perderán
  • de acuerdo con la documentación del paquete de vigilancia, el evento de movimiento se envía antes de que los cambios sean visibles en el sistema de archivos
  • tamaño de búfer limitado a 64 KB para red FS

Conclusión: La función ReadDirectoryChangesW le permite encontrar fácilmente todos los eventos en los archivos, pero la cola de eventos puede desbordarse y luego deberá realizar un análisis completo del sistema de archivos. También es posible entregar eventos antes de que sean relevantes.

Mac OS X, FSEvents

Mac OS X también tiene una API práctica y simple para monitorear los cambios en el sistema de archivos llamada FSEvents. Usando esta API, la implementación de daemon más simple es de 50 líneas de código o 1,8 kb. La cola no puede desbordarse (!), pero es posible que aún se requiera un análisis completo si el demonio fseventsd falla. Vale la pena señalar que esta API anterior a la versión 10.7 no proporciona cambios por archivos, solo informa directorios donde algo ha cambiado. Dado que los eventos no van a ninguna parte y se escriben en el registro (el servicio FSEvents almacena eventos en una base de datos persistente por volumen), los detalles con precisión de directorio ahorran espacio en disco.

Conclusión: La API de FSEvents para Mac OS X es la más inusual de todas estas API. La cola no se desborda e incluso es posible obtener eventos del pasado. Sin embargo, la granularidad de eventos se proporciona por directorio (hasta la versión 10.7), lo que significa que el daemon es menos eficiente para sincronizar archivos.

Linux, inotificar

En Linux Vanilla Kernel, hay una forma de observar los cambios en un directorio, y es inotify. Hay documentación buena y detallada para esta API, ¡pero no hay soporte para el seguimiento de cambios recursivos! Además, inotify tiene un límite en la cantidad máxima de objetos que se pueden monitorear. La implementación de daemon más simple requiere 250 líneas de código u 8 KB. Una compilación estática con dietlibc ocupa unos 14 kb. Otro momento desagradable es que la propia aplicación debe mantener correspondencias entre el descriptor del reloj (en nuestro caso, siempre es un directorio) y el nombre. Hay una función inotify_add_watch , que pasa la ruta al directorio monitoreado, pero no hay inversa: inotify_get_path, que devolvería esta misma ruta de acuerdo con el descriptor pasado. Los eventos contienen solo un descriptor de observación y una ruta relativa al archivo modificado dentro del directorio.

Peligros de seguir recursivamente un directorio con inotify:

  • Posibilidad de desbordar la cola (la longitud de la cola se establece en /proc/sys/fs/inotify/max_queued_events)
  • Límite en el número máximo de objetos de vigilancia (establecido en /proc/sys/fs/inotify/max_user_watches)
  • No poder seguir recursivamente un directorio
  • La necesidad de manejar el caso por separado cuando se crea un directorio (por ejemplo, mkdir -p a/b/c). Recibirá un evento de que se ha creado el directorio "a", pero mientras adjunta un controlador a este directorio, ya se puede crear otro directorio en él y no recibirá un evento sobre esto.
  • La posibilidad teórica de desbordamiento de enteros del descriptor de vigilancia (wd), ya que está establecido por uint32

FreeBSD, Mac OS X, kqueue

FreeBSD y Mac OS X le permiten realizar un seguimiento de los cambios utilizando kqueue, que tiene características similares a las de inotify y también carece de seguimiento recursivo de directorios. Además, kqueue toma descriptores como argumentos. abrir archivos(directorios), por lo que al usar esta API, los límites en la cantidad de directorios monitoreados son aún más estrictos.

Total:

Como puede ver, todas las API tienen sus ventajas y desventajas. Los mecanismos kqueue e inotify son los menos convenientes, pero también son los más eficientes y confiables. Los sistemas operativos comerciales brindan mecanismos más convenientes para rastrear cambios, pero también tienen sus propias características. Espero que ahora tenga una mejor idea de lo difícil que es el destino de Dropbox y programas similares que necesitan llevarse bien con todo esto y realizar una sincronización de datos confiable y eficiente :).

* Foto tomada de

Un pequeño programa que no requiere instalación, diseñado para monitorear archivos en la carpeta que especificó. Le permite monitorear tanto local como carpeta de red y mostrar alertas tanto en el escritorio como a través de la red o por correo electrónico. El programa también tiene la capacidad de responder rápidamente a los cambios mediante la ejecución de archivos bat o ciertas aplicaciones.

Dio la casualidad de que hoy en día todos, de una forma u otra, dependen de la computadora. No estoy hablando de la adicción a la computadora como una enfermedad, no :). Es solo que cada usuario almacena sus archivos personales en la PC de todos modos ...

Y dado que varias personas pueden trabajar en una computadora, entonces, naturalmente, es posible que desee asegurarse de que nadie tenga nada que ver con sus datos.

La forma más radical es cifrar su carpeta personal con una contraseña. Sin embargo, esto no siempre es conveniente, por ejemplo, si necesita acceder a él a través de la red ...

En este caso, puede buscar ayuda. programas especiales para monitorear los cambios de archivos en los directorios que necesita. Le permiten monitorear constantemente las carpetas seleccionadas y, si su contenido cambia, notificarlo al usuario. Uno de los pocos de este tipo programas gratis es simple observador.

Comparación con un análogo pagado

Un simple observador, a pesar de su nombre sencillo, es una herramienta de monitoreo bastante poderosa. sistema de archivos, que le permite monitorear tanto una carpeta separada como todo el disco o incluso un directorio de red compartido. Puedes compararlo con otro de pago desarrollo domestico- Servicio de vigilancia de carpetas:

El único inconveniente de Simple Watcher es la incapacidad de monitorear varias carpetas a la vez. Todo lo demás es solo una ventaja :).

Preparación para trabajar con el programa

¡Otra ventaja de la aplicación es que no requiere instalación! Para comenzar a trabajar con el programa, solo necesita extraerlo del archivo y colocarlo en cualquier carpeta conveniente(aunque en el que debe ser monitoreado). Todo - estamos listos para trabajar :).

¡Oh sí! Casi se me olvida advertirte que las bibliotecas deben estar instaladas en tu PC .NET Framework 3.5 (Por lo general, se instalan con el sistema, pero es posible que no estén disponibles, por lo que, por si acaso, aquí hay un enlace de descarga: https://www.microsoft.com/en-us/download/details.aspx?id=21 ).

Después de ejecutar el programa, veremos lo siguiente:

No tengas miedo :). Nadie nos pide dinero: el registro es completamente gratuito. Y si no desea revelar su incógnito, ¡entonces no puede registrarse en absoluto! Para hacer esto, simplemente haga clic en el botón "No registrarse".

Sin embargo, en el futuro deberá hacer esto cada vez que inicie el programa, por lo que será más fácil ingresar los datos necesarios en los campos correspondientes y hacer clic en "Registrarse".

Después de eso, la ventana principal del programa aparecerá frente a nosotros:

Consta de varios botones de función, un enlace a la carpeta supervisada y una barra de estado que muestra información sobre la actividad de la aplicación.

Configuración del programa

Antes de comenzar a ver una carpeta, le aconsejo que se familiarice con la configuración de Simple Observer. Para acceder a ellos, debe hacer clic en el botón "Configuración":

La configuración del programa se recopila en cuatro pestañas. Y el primero de ellos es "Seguimiento". Estos son los ajustes que son responsables de las funciones de seguimiento reales. Preste atención a los siguientes parámetros:

La segunda pestaña es "Notificación":

Aquí podemos configurar el tipo de notificación que recibimos sobre cambios en la carpeta. Por defecto, la notificación aparece encima de la bandeja y va acompañada de una señal estándar. Sin embargo, puede desactivar la notificación por completo, cambiar la señal o configurar una notificación de red local.

Si decide configurar notificaciones de red, asegúrese de leer la información en el enlace "Notas importantes sobre el funcionamiento de la función".

La pestaña "Acciones" contiene todas las funciones disponibles para que el programa las ejecute después de detectar cambios en la carpeta monitoreada:

Aquí podemos configurar:

  • iniciar un programa específico o secuencia de comandos por lotes;
  • enviar un informe a un correo electrónico;
  • enviar archivos modificados a un servidor FTP;
  • copiando los archivos modificados a otra carpeta.

Especialmente es necesario detenerse en el punto de trabajo con las notificaciones por correo electrónico. Si desea recibir informes (así como archivos modificados) en su correo electrónico Buzón, luego debe activar la casilla de verificación "Enviar informes por correo electrónico" y luego hacer clic en el botón "Configuración" activado:

En la ventana de configuración, debemos especificar los siguientes parámetros:

  1. "Servidor SMTP". Si utiliza servicios de correo en línea, la dirección del servidor generalmente corresponde a la dirección del servicio en sí, precedida por el prefijo SMTP.(Por ejemplo, smtp.mail.ru, smtp.yandex.ru etcétera.). Si este esquema no funciona, consulte la página de ayuda de su proveedor para obtener la dirección exacta.
  2. "Dirección de envio". Aquí se especifica la dirección desde la que se enviará el informe. Para evitar malentendidos, es mejor indicar su propio correo electrónico.
  3. Casilla de verificación "Autenticación requerida". si en tu servidor de correo se requiere autorización para enviar cartas (generalmente en todos los servicios en línea), luego debe activar esta opción y especificar el nombre de usuario y la contraseña de su buzón.
  4. Campo de destinatarios. Aquí, separados por punto y coma, ingresamos una lista de direcciones a las que se enviarán los informes.

Además, puede prestar atención a la opción "Adjuntar nuevos archivos". Le permite enviar archivos que han sido modificados junto con la notificación a su correo.

Para no sobrecargar el canal de Internet y no malgastar tráfico en vano (si es de pago), puedes limitar el tamaño de los archivos enviados mediante la opción "No enviar archivos mayores de...". Debajo también es posible, por el contrario, configurar los archivos que siempre se enviarán. Tal archivo puede ser, por ejemplo, un registro de operaciones del programa.

Al final de la configuración, puede verificar su corrección haciendo clic en el botón "Probar":

Si todo está configurado correctamente, recibirá un correo electrónico con un mensaje de prueba.

La última pestaña es "Programa":

Aquí están las opciones para Configuración general Un observador simple, como el inicio automático al iniciar el sistema, el inicio automático de la supervisión de carpetas, la ocultación de la aplicación en la bandeja, etc. Aquí también puede buscar actualizaciones y activar la visualización de mensajes emergentes (si no están visibles por defecto).

Ver una carpeta en Simple Watcher

Ahora que ya tienes todo configurado como necesitas, puedes empezar a trabajar directamente con el programa Simple Observer. Y antes que nada, debe especificar una carpeta para monitorear. De forma predeterminada, se selecciona toda la unidad C:, por lo que para cambiar la ruta, debe hacer clic en el botón "Carpeta" y especificar el directorio deseado en la ventana del Explorador:

Creé una carpeta de prueba separada en el escritorio, pero la ubicación de la carpeta no importa: el programa funciona igual de bien con todos los discos. Sin embargo, vale la pena mencionar una vez más que solo se puede especificar un directorio local a través del Explorador. Para monitorear a distancia carpeta compartida su dirección debe ser dada en primera ventana de configuración!

Entonces, estamos listos: puede comenzar a rastrear. Para hacer esto, haga clic en el botón "Inicio":

Después de presionarlo, se activa el botón "Detener", se desactiva el botón "Carpeta", y en la barra de estado aparece información sobre el tiempo que se monitoreó la carpeta, la cantidad de cambios en ella y el tiempo. ultimo cambio. Para ocultar la ventana del programa, basta con minimizarla, y se minimiza en la bandeja. Puede volver a abrir la ventana con un solo clic en el icono de la bandeja.

Para probar la funcionalidad del Simple Observer, coloquemos un archivo en nuestra carpeta de prueba:

Como puedes ver, el programa detectó los cambios y nos indicó que en la carpeta aparecía un nuevo archivo con un nombre específico. También se envió un informe sobre esto a mi correo electrónico. Otra característica del mensaje de Simple Observer es que si hace clic en la ventana de notificación, su carpeta se abrirá frente a usted, ¡en la que se resaltará el archivo modificado!

Ver los registros

Tan pronto como Simple Watcher detecte la primera actividad en la carpeta vigilada, creará automáticamente el archivo ver.log. Este es un archivo de texto que registra y almacena informes de todos los eventos que han ocurrido.

Este archivo se puede abrir con el Bloc de notas normal, pero es más conveniente verlo con las herramientas integradas del programa. Para hacer esto, simplemente haga clic en el botón "Iniciar sesión":

Aquí veremos los datos sobre el evento (acción, fecha, hora, nombre del archivo y carpeta que ha cambiado) y podremos encontrar rápidamente la entrada deseada gracias al sistema de filtros. También hay un botón aquí que le permite borrar rápidamente el archivo de registro si está demasiado "hinchado" en tamaño :).

Por cierto, sabiendo el nombre y la ubicación del archivo de registro, puede configurar el Simple Observer para que envíe el archivo de registro junto con cada mensaje a su correo electrónico(ver apartado de ajustes).

Ventajas y desventajas del programa.

  • no se requiere instalación;
  • pequeño tamaño de utilidad;
  • la capacidad de rastrear subcarpetas;
  • envío de informes por correo electrónico;
  • Envío de notificaciones a través de la red local.
  • funciona con una sola carpeta;
  • consume bastantes recursos en PC más antiguas sin configuración previa;
  • no hay forma de ocultar completamente el trabajo del programa con medios "regulares".

conclusiones

¡Hasta la fecha, Simple Observer es quizás el único programa completamente gratuito (incluso para uso comercial) de este tipo!

Por lo tanto, si decide a toda costa instalar vigilancia de datos personales en su PC en su ausencia, simplemente no encontrará otra opción :). Además, en el programa, además de admitir el monitoreo de una sola carpeta, prácticamente no hay inconvenientes.

PD Se permite copiar y citar libremente este artículo, siempre que se indique un enlace activo abierto a la fuente y se conserve la autoría de Ruslan Tertyshny.

Si no es el único usuario de PC, luego de un largo período de inactividad de la máquina, es posible que deba averiguar exactamente qué cambios se han producido durante este período de tiempo. También puede haber situaciones en las que disco duro muestra actividad, pero en realidad no está claro si está ocupado procesando procesos útiles o si está ejecutando malware. El programa FolderChangesView lo ayudará a realizar un seguimiento de los cambios en los archivos y obtener datos actualizados sobre todos los cambios en el sistema de archivos.

FolderChangesView es una pequeña utilidad que se creó específicamente para realizar un seguimiento de todos los cambios que ocurren en los archivos y carpetas. El programa muestra en tiempo real todos los cambios que ocurren con los archivos, y el resultado completo se muestra al usuario en una tabla conveniente. Puede descargar el programa en sí desde el sitio web oficial del desarrollador en el enlace (también es posible descargar el crack, que se instala simplemente moviéndolo a la carpeta con la aplicación): http://www.nirsoft.net /utils/folder_changes_view.html

Configuración del programa

La utilidad no requiere instalación, porque el archivo contiene solo un archivo .exe. Se recomienda crear una carpeta separada para el programa, descargar el crack y colocar estos dos archivos en él. Después de comenzar, el menú de configuración se abrirá frente a usted (si cierra el programa y lo vuelve a abrir, el menú aparecerá nuevamente frente a usted).

Aquí debe seleccionar una unidad, carpetas o una partición completa disco duro para ser analizados. Al seleccionar una carpeta, deje marcada la opción "Escanear también subcarpetas". También tiene la capacidad de especificar carpetas que no necesita monitorear: debe especificar la ruta a la carpeta y marcar la casilla junto a "Excluir las siguientes carpetas".
Bueno, en conclusión, desde configuraciones útiles, puede establecer el tamaño de los archivos que necesita monitorear. Después de seleccionar estas configuraciones básicas, simplemente haga clic en "Aceptar" y comenzará el proceso de monitoreo de las carpetas seleccionadas.

Me gustaría dedicar un artículo a una descripción general de las API proporcionadas por varios sistemas operativos para rastrear cambios en un directorio. El artículo apareció como resultado de mi trabajo sobre los demonios de seguimiento de cambios para la utilidad dklab_realsync (repositorio de github) y el mío propio, que no quiero anunciar todavía.

Windows ReadDirectoryChangesW

Para el sistema operativo Windows, hay una función maravillosa ReadDirectoryChangesW, que devuelve un conjunto de cambios para el directorio, incluido un indicador para trabajar de forma recursiva (bWatchSubtree). Por lo tanto, la implementación del seguimiento de cambios en el directorio no es difícil, y en la misma implementación de dklab_realsync se necesitan 80 líneas de código o 3,5 Kb. ¡Curiosamente, en Windows estos eventos son compatibles incluso a través de SMB!

Sin embargo, hay ciertas trampas:

  • el tamaño final del búfer de cambios, después de lo cual la cola de eventos se desbordará y estos eventos se perderán
  • de acuerdo con la documentación del paquete de vigilancia, el evento de movimiento se envía antes de que los cambios sean visibles en el sistema de archivos
  • tamaño de búfer limitado a 64 KB para red FS

Conclusión: La función ReadDirectoryChangesW le permite encontrar fácilmente todos los eventos en los archivos, pero la cola de eventos puede desbordarse y luego deberá realizar un análisis completo del sistema de archivos. También es posible entregar eventos antes de que sean relevantes.

Mac OS X, FSEvents

Mac OS X también tiene una API práctica y simple para monitorear los cambios en el sistema de archivos llamada FSEvents. Usando esta API, la implementación de daemon más simple es de 50 líneas de código o 1,8 kb. La cola no puede desbordarse (!), pero es posible que aún se requiera un análisis completo si el demonio fseventsd falla. Vale la pena señalar que esta API anterior a la versión 10.7 no proporciona cambios por archivos, solo informa directorios donde algo ha cambiado. Dado que los eventos no van a ninguna parte y se escriben en el registro (el servicio FSEvents almacena eventos en una base de datos persistente por volumen), los detalles con precisión de directorio ahorran espacio en disco.

Conclusión: La API de FSEvents para Mac OS X es la más inusual de todas estas API. La cola no se desborda e incluso es posible obtener eventos del pasado. Sin embargo, la granularidad de eventos se proporciona por directorio (hasta la versión 10.7), lo que significa que el daemon es menos eficiente para sincronizar archivos.

Linux, inotificar

En Linux Vanilla Kernel, hay una forma de observar los cambios en un directorio, y es inotify. Hay documentación buena y detallada para esta API, ¡pero no hay soporte para el seguimiento de cambios recursivos! Además, inotify tiene un límite en la cantidad máxima de objetos que se pueden monitorear. La implementación de daemon más simple requiere 250 líneas de código u 8 KB. Una compilación estática con dietlibc ocupa unos 14 kb. Otro momento desagradable es que la propia aplicación debe mantener correspondencias entre el descriptor del reloj (en nuestro caso, siempre es un directorio) y el nombre. Hay una función inotify_add_watch , que pasa la ruta al directorio monitoreado, pero no hay inversa: inotify_get_path, que devolvería esta misma ruta de acuerdo con el descriptor pasado. Los eventos contienen solo un descriptor de observación y una ruta relativa al archivo modificado dentro del directorio.

Peligros de seguir recursivamente un directorio con inotify:

  • Posibilidad de desbordar la cola (la longitud de la cola se establece en /proc/sys/fs/inotify/max_queued_events)
  • Límite en el número máximo de objetos de vigilancia (establecido en /proc/sys/fs/inotify/max_user_watches)
  • No poder seguir recursivamente un directorio
  • La necesidad de manejar el caso por separado cuando se crea un directorio (por ejemplo, mkdir -p a/b/c). Recibirá un evento de que se ha creado el directorio "a", pero mientras adjunta un controlador a este directorio, ya se puede crear otro directorio en él y no recibirá un evento sobre esto.
  • La posibilidad teórica de desbordamiento de enteros del descriptor de vigilancia (wd), ya que está establecido por uint32

FreeBSD, Mac OS X, kqueue

FreeBSD y Mac OS X le permiten realizar un seguimiento de los cambios utilizando kqueue, que tiene características similares a las de inotify y también carece de seguimiento recursivo de directorios. Además, kqueue toma descriptores de archivos abiertos (directorios) como argumentos, por lo que al usar esta API, los límites en la cantidad de directorios monitoreados son aún más estrictos.

Total:

Como puede ver, todas las API tienen sus ventajas y desventajas. Los mecanismos kqueue e inotify son los menos convenientes, pero también son los más eficientes y confiables. Los sistemas operativos comerciales brindan mecanismos más convenientes para rastrear cambios, pero también tienen sus propias características. Espero que ahora tenga una mejor idea de lo difícil que es el destino de Dropbox y programas similares que necesitan llevarse bien con todo esto y realizar una sincronización de datos confiable y eficiente :).

* Foto tomada de

sala de operaciones sistema de ventanas está equipado con la herramienta Explorer, que le permite hacerse una idea de lo que hay en los discos. Además de la lista de archivos, también vemos información sobre su tamaño y fecha de creación o modificación. Esta, sin embargo, es muy poca información para encontrar los datos que más obstruyen el disco.

Las aplicaciones en este artículo se pueden dividir en dos categorías. El primero son los programas que se especializan en la visualización de discos. Tal representación gráfica de los datos se percibe mejor que una lista de archivos. El segundo grupo de herramientas son aplicaciones que muestran las estadísticas de participación de tipos de archivos individuales, entre toda la información almacenada en medios de almacenamiento seleccionados.

WinDirStat

Representa el tamaño y la cantidad de archivos en el disco duro de una computadora en forma grafica, así como en soportes extraíbles de nuestra elección.

Beneficios de WinDirStat

  • Una forma accesible de visualización gráfica
  • También funciona en viejo Versiones de Windows
  • Puede definir cómo se muestran los elementos
  • tarjetas de arbol

Defectos:

  • Falta de detección de color. más tipos de archivo

Tipo de distribución: software gratuito
Precio: gratis

SpaceSniffer portátil

SpaceSniffer escanea y le muestra el contenido de las unidades seleccionadas en un esquema de color jerárquico fácil de leer.

Beneficios de SpaceSniffer

  • No requiere instalación
  • Amplias opciones de filtrado para los datos que se visualizan

Tipo de distribución: software gratuito
Precio: gratis

Tamaño del árbol libre

TreeSize Free le permite escanear rápidamente el contenido de cualquier medio y los resultados se muestran en un árbol desplegable.

Beneficios de TreeSize Free

  • Conveniente clasificación por tamaño, número de archivos o carpetas
  • Maneja flujos de datos de archivos alternativos sistemas NTFS
  • Interfaz adaptada para pantallas táctiles

Defectos:

  • Solo en versión en inglés

Tipo de distribución: software gratuito
Precio: gratis

Informe de disco JDisk

JDiskReport: para los amantes de las estadísticas en forma de gráficos, que recuerdan a los gráficos de Excel. En lugar de árboles, aquí tenemos gráficos de barras y gráficos circulares.

Beneficios de JDiskReport

  • Interesante esquemas gráficos
  • Muchas estadísticas diferentes, incluida la división por tamaño y fecha de creación.
  • Disponible versión Java que funciona en cualquier plataforma con Java

Defectos:

  • La versión de Windows requiere la instalación de Java

Tipo de distribución: software gratuito
Precio: gratis

Tamaño de carpeta

FolderSize está resaltado en la ventana de resumen. Muestra gráficos y una lista de archivos o carpetas que se pueden ordenar según varios criterios.

Beneficios de FolderSize

  • Muestra gráficos y lista de archivos en una ventana
  • Le permite pausar y reanudar el procedimiento de escaneo, tiene en cuenta rápidamente los cambios en los lugares ya marcados

Defectos:

  • La versión gratuita no le permite escanear discos duros y redes mapeados

Tipo de distribución: software gratuito
Precio: gratis

Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
COMPARTIR: