J'ai des fichiers CSV à l'emplacement A comme celui-ci p>
abc1.csv, abc2.csv, abc3.csv p>
J'ai un travail cron qui fonctionne toutes les 30 minutes et dans chaque exécution, je veux copier seulement 1 fichier (qui ne devrait pas être répété) et l'a placé à l'emplacement B p>
j'ai eu de 2 façons de faire ça 1) Je choisirai le premier fichier dans la liste des fichiers et copierez-le à l'emplacement B et la supprimera une fois copié.problème avec ceci est que je ne suis pas sûr lorsque le fichier sera copié complètement et si je supprime avant que sa copie a copiée peut être un problème 2) Je vais avoir un dossier temporaire. Je vais copier le fichier de l'emplacement A à l'emplacement B et le conserver également dans l'emplacement Temp.in prochaine itération, lorsque je choisis le fichier dans la liste des fichiers que je vais comparer son existence dans la temp. Emplacement du fichier.Si il existe, je vais passer au fichier suivant. Je pense que cela prendra plus de temps de consommer, etc. P>
S'il vous plaît suggérer s'il y a une autre meilleure façon p>
3 Réponses :
Vous pouvez vous assurer de déplacer le fichier déjà copié avec: (Ici, vous pouvez faire votre logique pour ne trouver que si le Vous pouvez également remplacer plus En outre, vous pouvez ajouter aux commandes ci-dessus Messages d'erreur au cas où vous souhaitez être informé si le et être informé via la sortie cron / e-mail p> p> *. CSV code> fichiers et non en compte
*. Terminé code> Les fichiers qui ont déjà été traités par votre script ... ou utilisez n'importe quel suffixe que vous voulez .. p>
cp code > Ne réussit pas, rien après que cela ne sera exécuté, le fichier ne sera donc pas déplacé. p>
mv code> avec
RM code> pour supprimer Il: p>
cp code> a échoué: p>
Vous pouvez utiliser ce script Bash pour votre cas d'utilisation:
source="/path/to/.csv/directory" dest="/path/to/destination/directory" cd $source for file in *.csv do if [ ! -f $dest/"$file" ] then cp -v $file $dest break fi done
Enfin j'ai pris une idée de la solution opte.here est le script final
Pourquoi supprimez-vous le fichier source? Ce n'était pas la partie de votre cas d'utilisation.
Oui non nécessaire.Mais je supprime donc que je m'assure que le fichier n'est pas choisi par hasard même si le cron ne fonctionne pas bien, etc.