Tôi có một chương trình trên một máy chủ từ xa, mà tôi cần thực hiện tự động. Lệnh thực thi chương trình đó, trên cùng một máy, trông giống như thế này:
/path/to/program -a file1.txt -b file2.txt
Trong trường hợp này, file1.txtvà file2.txtđược sử dụng cho những thứ hoàn toàn khác nhau trong chương trình, vì vậy tôi không thể chỉ catchúng cùng nhau. Tuy nhiên, trong trường hợp của tôi, file1.txtvà file2.txttôi muốn truyền vào chương trình chỉ tồn tại trên thiết bị của tôi chứ không phải trên máy chủ nơi tôi cần thực hiện chương trình. Tôi biết rằng tôi có thể cung cấp ít nhất một tệp thông qua SSH bằng cách chuyển qua stdin:
cat file1.txt | ssh host.name /path/to/program -a /dev/stdin -b file2.txt
nhưng, vì tôi không được phép lưu trữ các tập tin trên máy chủ, nên tôi cũng cần một cách để file2.txtvượt qua nó. Tôi nghĩ có thể có thể thông qua việc lạm dụng các biến môi trường và sử dụng sáng tạo catvà sedcùng nhau, nhưng tôi không biết rõ các công cụ đủ để hiểu cách tôi sẽ sử dụng chúng để thực hiện điều này. Là nó có thể làm được, và làm thế nào?
catvàsedkhông phải là giải pháp ở đây.