Získání data a času v bashi

Pro získání data a času v bashi můžeme využít příkaz date.

#!/bin/bash

now=$(date)
echo $now

Výsledek

So říj 14 17:12:03 CEST 2017

Tento příkaz nabízí celou řadu formátování viz man date. Zde jsou příklady:

actualDate=$(date +%Y-%m-%d) # stejné jako +%F
echo $actualDate

dateTime=$(date '+%Y-%m-%d %H:%M:%S')
echo $dateTime

dateOfYear=$(date +%j)
echo $dateOfYear

Výsledek

2017-10-14
2017-10-14 17:26:04
287

Zdroj: stackoverflow.com/…-format-date-in-shell-script

Spring Boot a Spring Batch – jednoduchý job

V tomto příspěvku budeme pokračovat v tomto projektu. Aktuálně máme prázdny projekt v Eclipse IDE, který lze spustil. Přidáme si do něj jednoduchý job, který bude mazat soubor. Pro definování nových tříd (beans) použijeme java configuraci.

BeanConfig.java

import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import cz.vitfo.batch.processing.DeleteFileTasklet;

@Configuration
@EnableBatchProcessing
@ComponentScan("cz.vitfo")
public class BeanConfig {

	@Autowired
	private JobBuilderFactory jobBuilderFactory;
	
	@Autowired
	private StepBuilderFactory stepBuilderFactory;
	
	@Autowired
	private DeleteFileTasklet deleteFileTasklet;
	
	@Bean	
	public Job myJob() {
		return jobBuilderFactory.get("myJob")
			.start(deleteFileFromDirectoryStep())
			.build();
	}
	
	@Bean
	public Step deleteFileFromDirectoryStep() {
		return stepBuilderFactory.get("deleteFileFromDirectoryStep")
			.tasklet(deleteFileFromDirectoryTasklet())
			.build();
	}
	
	@Bean
	public Tasklet deleteFileFromDirectoryTasklet() {
		return deleteFileTasklet;
	}
}
  • Anotace @Configuration označuje tuto třídu jako tu, která obsahuje jednu nebo více anotací @Bean. Pokud na tuto anotaci Spring narazí, vytvoří beanu (třídu) dle definice. Zkráceně řečeno anotace @Configuration označuje třídu, kde se nachází konfigurace.
  • Anotace @EnableBatchProcessing za nás vytvoří a inicializuje beany (třídy) jako například JobBuilderFactory nebo StepBuilderFactory, které budeme používat pro vytvoření jobu.
  • Anotace @ComponentScan říká Springu, kde má hledat třídy, ze kterých má vytvořit beany. Spring pak prochází zadanou cestu a hledá třídy s anotacemi.

Číst dálSpring Boot a Spring Batch – jednoduchý job